{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "7343d0bb-11b7-4a03-a410-e6d863cde034",
   "metadata": {},
   "outputs": [],
   "source": [
    "from glob import glob\n",
    "import pandas as pd\n",
    "from scipy.stats import spearmanr, fisher_exact\n",
    "from statsmodels.sandbox.stats.multicomp import multipletests\n",
    "import numpy as np\n",
    "import seaborn as sns\n",
    "from skbio.stats.composition import clr\n",
    "\n",
    "sns.set_style('whitegrid')\n",
    "\n",
    "def p_adjust(pvalues, method='fdr_bh'):\n",
    "    res = multipletests(pvalues, method=method)\n",
    "    return np.array(res[1], dtype=float)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "563ad34e-841c-49af-888b-d69862313065",
   "metadata": {},
   "source": [
    "# Correlate proteomics data with median titers\n",
    "##### 7/18/22\n",
    "##### Michael Shaffer\n",
    "##### Merck ESC, Sys bio group\n",
    "\n",
    "After some success with KOs and more success with metabolomics we decided to go into proteomics. Same exact approach as in metabolomics."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "18d883c6-2a81-4fd5-a947-89fd24c6fa12",
   "metadata": {},
   "source": [
    "## Read in the data\n",
    "\n",
    "This is a data sheet that I got directly from Hendrik."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "c72a493d-1ca8-4e8a-b515-e49024f0c039",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>BioID</th>\n",
       "      <th>Well</th>\n",
       "      <th>Run Number</th>\n",
       "      <th>Hospital</th>\n",
       "      <th>VisitID</th>\n",
       "      <th>Age</th>\n",
       "      <th>Draw</th>\n",
       "      <th>Matrix</th>\n",
       "      <th>Draw_Matrix</th>\n",
       "      <th>Draw_Matrix_Time</th>\n",
       "      <th>...</th>\n",
       "      <th>sp|Q6UWP8|SBSN_HUMAN</th>\n",
       "      <th>sp|Q6UXB8|PI16_HUMAN</th>\n",
       "      <th>sp|Q92736|RYR2_HUMAN</th>\n",
       "      <th>sp|Q96IY4|CBPB2_HUMAN</th>\n",
       "      <th>sp|Q96PD5|PGRP2_HUMAN</th>\n",
       "      <th>sp|Q9HDC9|APMAP_HUMAN</th>\n",
       "      <th>sp|Q9NZP8|C1RL_HUMAN</th>\n",
       "      <th>sp|Q9UBP9|GULP1_HUMAN</th>\n",
       "      <th>sp|Q9UGM5|FETUB_HUMAN</th>\n",
       "      <th>sp|Q9Y490|TLN1_HUMAN</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>LFQ intensity 005_HFX_HW_RAW_IMC_A1_106A</th>\n",
       "      <td>106A</td>\n",
       "      <td>A1</td>\n",
       "      <td>5</td>\n",
       "      <td>Well Check 02m</td>\n",
       "      <td>V5</td>\n",
       "      <td>63</td>\n",
       "      <td>Heelstick</td>\n",
       "      <td>Serum</td>\n",
       "      <td>Heelstick_Serum</td>\n",
       "      <td>V5_Heelstick_Serum</td>\n",
       "      <td>...</td>\n",
       "      <td>18.2125721</td>\n",
       "      <td>23.48308372</td>\n",
       "      <td>20.45380974</td>\n",
       "      <td>21.819561</td>\n",
       "      <td>25.08229065</td>\n",
       "      <td>20.85553551</td>\n",
       "      <td>20.4588604</td>\n",
       "      <td>28.83514977</td>\n",
       "      <td>21.02322769</td>\n",
       "      <td>20.34404564</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LFQ intensity 006_HFX_HW_RAW_IMC_A2_209A</th>\n",
       "      <td>209A</td>\n",
       "      <td>A2</td>\n",
       "      <td>6</td>\n",
       "      <td>Well Check 02m</td>\n",
       "      <td>V5</td>\n",
       "      <td>55</td>\n",
       "      <td>Heelstick</td>\n",
       "      <td>Serum</td>\n",
       "      <td>Heelstick_Serum</td>\n",
       "      <td>V5_Heelstick_Serum</td>\n",
       "      <td>...</td>\n",
       "      <td>16.90970612</td>\n",
       "      <td>23.31561852</td>\n",
       "      <td>18.60210037</td>\n",
       "      <td>22.21127701</td>\n",
       "      <td>24.88887978</td>\n",
       "      <td>20.59141159</td>\n",
       "      <td>17.14304733</td>\n",
       "      <td>28.68237686</td>\n",
       "      <td>21.82271576</td>\n",
       "      <td>19.7013855</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LFQ intensity 012_HFX_HW_RAW_IMC_A8_214A</th>\n",
       "      <td>214A</td>\n",
       "      <td>A8</td>\n",
       "      <td>12</td>\n",
       "      <td>Well Check 02m</td>\n",
       "      <td>V5</td>\n",
       "      <td>89</td>\n",
       "      <td>Heelstick</td>\n",
       "      <td>Serum</td>\n",
       "      <td>Heelstick_Serum</td>\n",
       "      <td>V5_Heelstick_Serum</td>\n",
       "      <td>...</td>\n",
       "      <td>13.34554386</td>\n",
       "      <td>23.58817863</td>\n",
       "      <td>18.65951729</td>\n",
       "      <td>21.8640461</td>\n",
       "      <td>25.16353798</td>\n",
       "      <td>21.04162788</td>\n",
       "      <td>18.74650764</td>\n",
       "      <td>29.10836601</td>\n",
       "      <td>19.95448685</td>\n",
       "      <td>20.4085598</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LFQ intensity 021_HFX_HW_RAW_IMC_C3_227A</th>\n",
       "      <td>227A</td>\n",
       "      <td>C3</td>\n",
       "      <td>21</td>\n",
       "      <td>Well Check 02m</td>\n",
       "      <td>V5</td>\n",
       "      <td>57</td>\n",
       "      <td>Heelstick</td>\n",
       "      <td>Serum</td>\n",
       "      <td>Heelstick_Serum</td>\n",
       "      <td>V5_Heelstick_Serum</td>\n",
       "      <td>...</td>\n",
       "      <td>20.80704689</td>\n",
       "      <td>23.25824928</td>\n",
       "      <td>21.18655968</td>\n",
       "      <td>21.24667168</td>\n",
       "      <td>25.07989311</td>\n",
       "      <td>19.46746445</td>\n",
       "      <td>20.6216526</td>\n",
       "      <td>28.35871315</td>\n",
       "      <td>20.65556526</td>\n",
       "      <td>20.66396141</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LFQ intensity 024_HFX_HW_RAW_IMC_C6_124A</th>\n",
       "      <td>124A</td>\n",
       "      <td>C6</td>\n",
       "      <td>24</td>\n",
       "      <td>Well Check 02m</td>\n",
       "      <td>V5</td>\n",
       "      <td>97</td>\n",
       "      <td>Heelstick</td>\n",
       "      <td>Serum</td>\n",
       "      <td>Heelstick_Serum</td>\n",
       "      <td>V5_Heelstick_Serum</td>\n",
       "      <td>...</td>\n",
       "      <td>17.50129318</td>\n",
       "      <td>23.05339622</td>\n",
       "      <td>21.60560417</td>\n",
       "      <td>21.72242355</td>\n",
       "      <td>25.20258331</td>\n",
       "      <td>19.91134644</td>\n",
       "      <td>21.13340378</td>\n",
       "      <td>28.25678444</td>\n",
       "      <td>20.77088356</td>\n",
       "      <td>20.50154495</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 267 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                         BioID Well Run Number  \\\n",
       "LFQ intensity 005_HFX_HW_RAW_IMC_A1_106A  106A   A1          5   \n",
       "LFQ intensity 006_HFX_HW_RAW_IMC_A2_209A  209A   A2          6   \n",
       "LFQ intensity 012_HFX_HW_RAW_IMC_A8_214A  214A   A8         12   \n",
       "LFQ intensity 021_HFX_HW_RAW_IMC_C3_227A  227A   C3         21   \n",
       "LFQ intensity 024_HFX_HW_RAW_IMC_C6_124A  124A   C6         24   \n",
       "\n",
       "                                                Hospital VisitID Age  \\\n",
       "LFQ intensity 005_HFX_HW_RAW_IMC_A1_106A  Well Check 02m      V5  63   \n",
       "LFQ intensity 006_HFX_HW_RAW_IMC_A2_209A  Well Check 02m      V5  55   \n",
       "LFQ intensity 012_HFX_HW_RAW_IMC_A8_214A  Well Check 02m      V5  89   \n",
       "LFQ intensity 021_HFX_HW_RAW_IMC_C3_227A  Well Check 02m      V5  57   \n",
       "LFQ intensity 024_HFX_HW_RAW_IMC_C6_124A  Well Check 02m      V5  97   \n",
       "\n",
       "                                               Draw Matrix      Draw_Matrix  \\\n",
       "LFQ intensity 005_HFX_HW_RAW_IMC_A1_106A  Heelstick  Serum  Heelstick_Serum   \n",
       "LFQ intensity 006_HFX_HW_RAW_IMC_A2_209A  Heelstick  Serum  Heelstick_Serum   \n",
       "LFQ intensity 012_HFX_HW_RAW_IMC_A8_214A  Heelstick  Serum  Heelstick_Serum   \n",
       "LFQ intensity 021_HFX_HW_RAW_IMC_C3_227A  Heelstick  Serum  Heelstick_Serum   \n",
       "LFQ intensity 024_HFX_HW_RAW_IMC_C6_124A  Heelstick  Serum  Heelstick_Serum   \n",
       "\n",
       "                                            Draw_Matrix_Time  ...  \\\n",
       "LFQ intensity 005_HFX_HW_RAW_IMC_A1_106A  V5_Heelstick_Serum  ...   \n",
       "LFQ intensity 006_HFX_HW_RAW_IMC_A2_209A  V5_Heelstick_Serum  ...   \n",
       "LFQ intensity 012_HFX_HW_RAW_IMC_A8_214A  V5_Heelstick_Serum  ...   \n",
       "LFQ intensity 021_HFX_HW_RAW_IMC_C3_227A  V5_Heelstick_Serum  ...   \n",
       "LFQ intensity 024_HFX_HW_RAW_IMC_C6_124A  V5_Heelstick_Serum  ...   \n",
       "\n",
       "                                         sp|Q6UWP8|SBSN_HUMAN  \\\n",
       "LFQ intensity 005_HFX_HW_RAW_IMC_A1_106A           18.2125721   \n",
       "LFQ intensity 006_HFX_HW_RAW_IMC_A2_209A          16.90970612   \n",
       "LFQ intensity 012_HFX_HW_RAW_IMC_A8_214A          13.34554386   \n",
       "LFQ intensity 021_HFX_HW_RAW_IMC_C3_227A          20.80704689   \n",
       "LFQ intensity 024_HFX_HW_RAW_IMC_C6_124A          17.50129318   \n",
       "\n",
       "                                         sp|Q6UXB8|PI16_HUMAN  \\\n",
       "LFQ intensity 005_HFX_HW_RAW_IMC_A1_106A          23.48308372   \n",
       "LFQ intensity 006_HFX_HW_RAW_IMC_A2_209A          23.31561852   \n",
       "LFQ intensity 012_HFX_HW_RAW_IMC_A8_214A          23.58817863   \n",
       "LFQ intensity 021_HFX_HW_RAW_IMC_C3_227A          23.25824928   \n",
       "LFQ intensity 024_HFX_HW_RAW_IMC_C6_124A          23.05339622   \n",
       "\n",
       "                                         sp|Q92736|RYR2_HUMAN  \\\n",
       "LFQ intensity 005_HFX_HW_RAW_IMC_A1_106A          20.45380974   \n",
       "LFQ intensity 006_HFX_HW_RAW_IMC_A2_209A          18.60210037   \n",
       "LFQ intensity 012_HFX_HW_RAW_IMC_A8_214A          18.65951729   \n",
       "LFQ intensity 021_HFX_HW_RAW_IMC_C3_227A          21.18655968   \n",
       "LFQ intensity 024_HFX_HW_RAW_IMC_C6_124A          21.60560417   \n",
       "\n",
       "                                         sp|Q96IY4|CBPB2_HUMAN  \\\n",
       "LFQ intensity 005_HFX_HW_RAW_IMC_A1_106A             21.819561   \n",
       "LFQ intensity 006_HFX_HW_RAW_IMC_A2_209A           22.21127701   \n",
       "LFQ intensity 012_HFX_HW_RAW_IMC_A8_214A            21.8640461   \n",
       "LFQ intensity 021_HFX_HW_RAW_IMC_C3_227A           21.24667168   \n",
       "LFQ intensity 024_HFX_HW_RAW_IMC_C6_124A           21.72242355   \n",
       "\n",
       "                                         sp|Q96PD5|PGRP2_HUMAN  \\\n",
       "LFQ intensity 005_HFX_HW_RAW_IMC_A1_106A           25.08229065   \n",
       "LFQ intensity 006_HFX_HW_RAW_IMC_A2_209A           24.88887978   \n",
       "LFQ intensity 012_HFX_HW_RAW_IMC_A8_214A           25.16353798   \n",
       "LFQ intensity 021_HFX_HW_RAW_IMC_C3_227A           25.07989311   \n",
       "LFQ intensity 024_HFX_HW_RAW_IMC_C6_124A           25.20258331   \n",
       "\n",
       "                                         sp|Q9HDC9|APMAP_HUMAN  \\\n",
       "LFQ intensity 005_HFX_HW_RAW_IMC_A1_106A           20.85553551   \n",
       "LFQ intensity 006_HFX_HW_RAW_IMC_A2_209A           20.59141159   \n",
       "LFQ intensity 012_HFX_HW_RAW_IMC_A8_214A           21.04162788   \n",
       "LFQ intensity 021_HFX_HW_RAW_IMC_C3_227A           19.46746445   \n",
       "LFQ intensity 024_HFX_HW_RAW_IMC_C6_124A           19.91134644   \n",
       "\n",
       "                                         sp|Q9NZP8|C1RL_HUMAN  \\\n",
       "LFQ intensity 005_HFX_HW_RAW_IMC_A1_106A           20.4588604   \n",
       "LFQ intensity 006_HFX_HW_RAW_IMC_A2_209A          17.14304733   \n",
       "LFQ intensity 012_HFX_HW_RAW_IMC_A8_214A          18.74650764   \n",
       "LFQ intensity 021_HFX_HW_RAW_IMC_C3_227A           20.6216526   \n",
       "LFQ intensity 024_HFX_HW_RAW_IMC_C6_124A          21.13340378   \n",
       "\n",
       "                                         sp|Q9UBP9|GULP1_HUMAN  \\\n",
       "LFQ intensity 005_HFX_HW_RAW_IMC_A1_106A           28.83514977   \n",
       "LFQ intensity 006_HFX_HW_RAW_IMC_A2_209A           28.68237686   \n",
       "LFQ intensity 012_HFX_HW_RAW_IMC_A8_214A           29.10836601   \n",
       "LFQ intensity 021_HFX_HW_RAW_IMC_C3_227A           28.35871315   \n",
       "LFQ intensity 024_HFX_HW_RAW_IMC_C6_124A           28.25678444   \n",
       "\n",
       "                                         sp|Q9UGM5|FETUB_HUMAN  \\\n",
       "LFQ intensity 005_HFX_HW_RAW_IMC_A1_106A           21.02322769   \n",
       "LFQ intensity 006_HFX_HW_RAW_IMC_A2_209A           21.82271576   \n",
       "LFQ intensity 012_HFX_HW_RAW_IMC_A8_214A           19.95448685   \n",
       "LFQ intensity 021_HFX_HW_RAW_IMC_C3_227A           20.65556526   \n",
       "LFQ intensity 024_HFX_HW_RAW_IMC_C6_124A           20.77088356   \n",
       "\n",
       "                                         sp|Q9Y490|TLN1_HUMAN  \n",
       "LFQ intensity 005_HFX_HW_RAW_IMC_A1_106A          20.34404564  \n",
       "LFQ intensity 006_HFX_HW_RAW_IMC_A2_209A           19.7013855  \n",
       "LFQ intensity 012_HFX_HW_RAW_IMC_A8_214A           20.4085598  \n",
       "LFQ intensity 021_HFX_HW_RAW_IMC_C3_227A          20.66396141  \n",
       "LFQ intensity 024_HFX_HW_RAW_IMC_C6_124A          20.50154495  \n",
       "\n",
       "[5 rows x 267 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "raw_proteomics = pd.read_csv('../../data/proteomics_abunds.txt', sep='\\t', index_col=0).transpose()\n",
    "raw_proteomics.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bd4f4318-0563-4005-90a1-305218f35529",
   "metadata": {},
   "source": [
    "This is removing all columns that doen't have abundance information, taking only unique ID from row names and converting to floats."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "d705c47d-572a-4f97-98c3-39e9127139f6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CON__P00761</th>\n",
       "      <th>sp|P02533|K1C14_HUMAN;CON__P02533</th>\n",
       "      <th>sp|P02768|ALBU_HUMAN;CON__P02768-1</th>\n",
       "      <th>CON__P02769</th>\n",
       "      <th>sp|P48668|K2C6C_HUMAN;CON__P48668;CON__P04259</th>\n",
       "      <th>sp|P13645|K1C10_HUMAN;CON__P13645</th>\n",
       "      <th>sp|P13647|K2C5_HUMAN;CON__P13647</th>\n",
       "      <th>CON__P35908;CON__P35908v2;sp|P35908|K22E_HUMAN</th>\n",
       "      <th>sp|Q86YZ3|HORN_HUMAN;CON__Q86YZ3</th>\n",
       "      <th>sp|A0A075B6H9|LV469_HUMAN</th>\n",
       "      <th>...</th>\n",
       "      <th>sp|Q6UWP8|SBSN_HUMAN</th>\n",
       "      <th>sp|Q6UXB8|PI16_HUMAN</th>\n",
       "      <th>sp|Q92736|RYR2_HUMAN</th>\n",
       "      <th>sp|Q96IY4|CBPB2_HUMAN</th>\n",
       "      <th>sp|Q96PD5|PGRP2_HUMAN</th>\n",
       "      <th>sp|Q9HDC9|APMAP_HUMAN</th>\n",
       "      <th>sp|Q9NZP8|C1RL_HUMAN</th>\n",
       "      <th>sp|Q9UBP9|GULP1_HUMAN</th>\n",
       "      <th>sp|Q9UGM5|FETUB_HUMAN</th>\n",
       "      <th>sp|Q9Y490|TLN1_HUMAN</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>005_HFX_HW_RAW_IMC_A1_106A</th>\n",
       "      <td>29.414034</td>\n",
       "      <td>19.480482</td>\n",
       "      <td>33.365807</td>\n",
       "      <td>23.197741</td>\n",
       "      <td>21.572432</td>\n",
       "      <td>21.094681</td>\n",
       "      <td>19.310707</td>\n",
       "      <td>19.288029</td>\n",
       "      <td>19.483946</td>\n",
       "      <td>21.265715</td>\n",
       "      <td>...</td>\n",
       "      <td>18.212572</td>\n",
       "      <td>23.483084</td>\n",
       "      <td>20.453810</td>\n",
       "      <td>21.819561</td>\n",
       "      <td>25.082291</td>\n",
       "      <td>20.855536</td>\n",
       "      <td>20.458860</td>\n",
       "      <td>28.835150</td>\n",
       "      <td>21.023228</td>\n",
       "      <td>20.344046</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>006_HFX_HW_RAW_IMC_A2_209A</th>\n",
       "      <td>29.336454</td>\n",
       "      <td>19.774490</td>\n",
       "      <td>32.956917</td>\n",
       "      <td>23.397673</td>\n",
       "      <td>21.685078</td>\n",
       "      <td>22.188005</td>\n",
       "      <td>20.725851</td>\n",
       "      <td>20.871471</td>\n",
       "      <td>19.841579</td>\n",
       "      <td>20.858858</td>\n",
       "      <td>...</td>\n",
       "      <td>16.909706</td>\n",
       "      <td>23.315619</td>\n",
       "      <td>18.602100</td>\n",
       "      <td>22.211277</td>\n",
       "      <td>24.888880</td>\n",
       "      <td>20.591412</td>\n",
       "      <td>17.143047</td>\n",
       "      <td>28.682377</td>\n",
       "      <td>21.822716</td>\n",
       "      <td>19.701386</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>012_HFX_HW_RAW_IMC_A8_214A</th>\n",
       "      <td>28.906614</td>\n",
       "      <td>19.529310</td>\n",
       "      <td>33.174339</td>\n",
       "      <td>24.401390</td>\n",
       "      <td>19.594507</td>\n",
       "      <td>22.131947</td>\n",
       "      <td>19.528219</td>\n",
       "      <td>20.954256</td>\n",
       "      <td>18.534006</td>\n",
       "      <td>21.559875</td>\n",
       "      <td>...</td>\n",
       "      <td>13.345544</td>\n",
       "      <td>23.588179</td>\n",
       "      <td>18.659517</td>\n",
       "      <td>21.864046</td>\n",
       "      <td>25.163538</td>\n",
       "      <td>21.041628</td>\n",
       "      <td>18.746508</td>\n",
       "      <td>29.108366</td>\n",
       "      <td>19.954487</td>\n",
       "      <td>20.408560</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>021_HFX_HW_RAW_IMC_C3_227A</th>\n",
       "      <td>29.769306</td>\n",
       "      <td>21.061234</td>\n",
       "      <td>33.328308</td>\n",
       "      <td>24.742115</td>\n",
       "      <td>20.643036</td>\n",
       "      <td>20.368902</td>\n",
       "      <td>20.235897</td>\n",
       "      <td>17.218355</td>\n",
       "      <td>19.047693</td>\n",
       "      <td>21.543921</td>\n",
       "      <td>...</td>\n",
       "      <td>20.807047</td>\n",
       "      <td>23.258249</td>\n",
       "      <td>21.186560</td>\n",
       "      <td>21.246672</td>\n",
       "      <td>25.079893</td>\n",
       "      <td>19.467464</td>\n",
       "      <td>20.621653</td>\n",
       "      <td>28.358713</td>\n",
       "      <td>20.655565</td>\n",
       "      <td>20.663961</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>024_HFX_HW_RAW_IMC_C6_124A</th>\n",
       "      <td>29.567360</td>\n",
       "      <td>20.363079</td>\n",
       "      <td>32.930107</td>\n",
       "      <td>23.502518</td>\n",
       "      <td>20.780497</td>\n",
       "      <td>19.634420</td>\n",
       "      <td>20.836931</td>\n",
       "      <td>17.906363</td>\n",
       "      <td>18.741560</td>\n",
       "      <td>22.351000</td>\n",
       "      <td>...</td>\n",
       "      <td>17.501293</td>\n",
       "      <td>23.053396</td>\n",
       "      <td>21.605604</td>\n",
       "      <td>21.722424</td>\n",
       "      <td>25.202583</td>\n",
       "      <td>19.911346</td>\n",
       "      <td>21.133404</td>\n",
       "      <td>28.256784</td>\n",
       "      <td>20.770884</td>\n",
       "      <td>20.501545</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 250 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                            CON__P00761  sp|P02533|K1C14_HUMAN;CON__P02533  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A    29.414034                          19.480482   \n",
       "006_HFX_HW_RAW_IMC_A2_209A    29.336454                          19.774490   \n",
       "012_HFX_HW_RAW_IMC_A8_214A    28.906614                          19.529310   \n",
       "021_HFX_HW_RAW_IMC_C3_227A    29.769306                          21.061234   \n",
       "024_HFX_HW_RAW_IMC_C6_124A    29.567360                          20.363079   \n",
       "\n",
       "                            sp|P02768|ALBU_HUMAN;CON__P02768-1  CON__P02769  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A                           33.365807    23.197741   \n",
       "006_HFX_HW_RAW_IMC_A2_209A                           32.956917    23.397673   \n",
       "012_HFX_HW_RAW_IMC_A8_214A                           33.174339    24.401390   \n",
       "021_HFX_HW_RAW_IMC_C3_227A                           33.328308    24.742115   \n",
       "024_HFX_HW_RAW_IMC_C6_124A                           32.930107    23.502518   \n",
       "\n",
       "                            sp|P48668|K2C6C_HUMAN;CON__P48668;CON__P04259  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A                                      21.572432   \n",
       "006_HFX_HW_RAW_IMC_A2_209A                                      21.685078   \n",
       "012_HFX_HW_RAW_IMC_A8_214A                                      19.594507   \n",
       "021_HFX_HW_RAW_IMC_C3_227A                                      20.643036   \n",
       "024_HFX_HW_RAW_IMC_C6_124A                                      20.780497   \n",
       "\n",
       "                            sp|P13645|K1C10_HUMAN;CON__P13645  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A                          21.094681   \n",
       "006_HFX_HW_RAW_IMC_A2_209A                          22.188005   \n",
       "012_HFX_HW_RAW_IMC_A8_214A                          22.131947   \n",
       "021_HFX_HW_RAW_IMC_C3_227A                          20.368902   \n",
       "024_HFX_HW_RAW_IMC_C6_124A                          19.634420   \n",
       "\n",
       "                            sp|P13647|K2C5_HUMAN;CON__P13647  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A                         19.310707   \n",
       "006_HFX_HW_RAW_IMC_A2_209A                         20.725851   \n",
       "012_HFX_HW_RAW_IMC_A8_214A                         19.528219   \n",
       "021_HFX_HW_RAW_IMC_C3_227A                         20.235897   \n",
       "024_HFX_HW_RAW_IMC_C6_124A                         20.836931   \n",
       "\n",
       "                            CON__P35908;CON__P35908v2;sp|P35908|K22E_HUMAN  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A                                       19.288029   \n",
       "006_HFX_HW_RAW_IMC_A2_209A                                       20.871471   \n",
       "012_HFX_HW_RAW_IMC_A8_214A                                       20.954256   \n",
       "021_HFX_HW_RAW_IMC_C3_227A                                       17.218355   \n",
       "024_HFX_HW_RAW_IMC_C6_124A                                       17.906363   \n",
       "\n",
       "                            sp|Q86YZ3|HORN_HUMAN;CON__Q86YZ3  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A                         19.483946   \n",
       "006_HFX_HW_RAW_IMC_A2_209A                         19.841579   \n",
       "012_HFX_HW_RAW_IMC_A8_214A                         18.534006   \n",
       "021_HFX_HW_RAW_IMC_C3_227A                         19.047693   \n",
       "024_HFX_HW_RAW_IMC_C6_124A                         18.741560   \n",
       "\n",
       "                            sp|A0A075B6H9|LV469_HUMAN  ...  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A                  21.265715  ...   \n",
       "006_HFX_HW_RAW_IMC_A2_209A                  20.858858  ...   \n",
       "012_HFX_HW_RAW_IMC_A8_214A                  21.559875  ...   \n",
       "021_HFX_HW_RAW_IMC_C3_227A                  21.543921  ...   \n",
       "024_HFX_HW_RAW_IMC_C6_124A                  22.351000  ...   \n",
       "\n",
       "                            sp|Q6UWP8|SBSN_HUMAN  sp|Q6UXB8|PI16_HUMAN  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A             18.212572             23.483084   \n",
       "006_HFX_HW_RAW_IMC_A2_209A             16.909706             23.315619   \n",
       "012_HFX_HW_RAW_IMC_A8_214A             13.345544             23.588179   \n",
       "021_HFX_HW_RAW_IMC_C3_227A             20.807047             23.258249   \n",
       "024_HFX_HW_RAW_IMC_C6_124A             17.501293             23.053396   \n",
       "\n",
       "                            sp|Q92736|RYR2_HUMAN  sp|Q96IY4|CBPB2_HUMAN  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A             20.453810              21.819561   \n",
       "006_HFX_HW_RAW_IMC_A2_209A             18.602100              22.211277   \n",
       "012_HFX_HW_RAW_IMC_A8_214A             18.659517              21.864046   \n",
       "021_HFX_HW_RAW_IMC_C3_227A             21.186560              21.246672   \n",
       "024_HFX_HW_RAW_IMC_C6_124A             21.605604              21.722424   \n",
       "\n",
       "                            sp|Q96PD5|PGRP2_HUMAN  sp|Q9HDC9|APMAP_HUMAN  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A              25.082291              20.855536   \n",
       "006_HFX_HW_RAW_IMC_A2_209A              24.888880              20.591412   \n",
       "012_HFX_HW_RAW_IMC_A8_214A              25.163538              21.041628   \n",
       "021_HFX_HW_RAW_IMC_C3_227A              25.079893              19.467464   \n",
       "024_HFX_HW_RAW_IMC_C6_124A              25.202583              19.911346   \n",
       "\n",
       "                            sp|Q9NZP8|C1RL_HUMAN  sp|Q9UBP9|GULP1_HUMAN  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A             20.458860              28.835150   \n",
       "006_HFX_HW_RAW_IMC_A2_209A             17.143047              28.682377   \n",
       "012_HFX_HW_RAW_IMC_A8_214A             18.746508              29.108366   \n",
       "021_HFX_HW_RAW_IMC_C3_227A             20.621653              28.358713   \n",
       "024_HFX_HW_RAW_IMC_C6_124A             21.133404              28.256784   \n",
       "\n",
       "                            sp|Q9UGM5|FETUB_HUMAN  sp|Q9Y490|TLN1_HUMAN  \n",
       "005_HFX_HW_RAW_IMC_A1_106A              21.023228             20.344046  \n",
       "006_HFX_HW_RAW_IMC_A2_209A              21.822716             19.701386  \n",
       "012_HFX_HW_RAW_IMC_A8_214A              19.954487             20.408560  \n",
       "021_HFX_HW_RAW_IMC_C3_227A              20.655565             20.663961  \n",
       "024_HFX_HW_RAW_IMC_C6_124A              20.770884             20.501545  \n",
       "\n",
       "[5 rows x 250 columns]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "proteomics = raw_proteomics.loc[[i for i in raw_proteomics.index if i.startswith('LFQ intensity')],\n",
    "                                raw_proteomics.columns[list(raw_proteomics.columns).index('Subject ID')+1:]]\n",
    "proteomics.index = [i.split()[-1] for i in proteomics.index]\n",
    "proteomics = proteomics.astype(float)\n",
    "proteomics.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "9f89924d-3480-49b9-ae04-d5f820295de1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "250\n"
     ]
    }
   ],
   "source": [
    "print(len(proteomics.columns))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f613af37-06ef-4f8e-90e5-51702fc6ac88",
   "metadata": {},
   "source": [
    "250 proteins measured.\n",
    "\n",
    "Convert the abundances to relative abundance for comparison of normalizations."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "4bfeee8c-6683-4328-af45-2a4716107958",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CON__P00761</th>\n",
       "      <th>sp|P02533|K1C14_HUMAN;CON__P02533</th>\n",
       "      <th>sp|P02768|ALBU_HUMAN;CON__P02768-1</th>\n",
       "      <th>CON__P02769</th>\n",
       "      <th>sp|P48668|K2C6C_HUMAN;CON__P48668;CON__P04259</th>\n",
       "      <th>sp|P13645|K1C10_HUMAN;CON__P13645</th>\n",
       "      <th>sp|P13647|K2C5_HUMAN;CON__P13647</th>\n",
       "      <th>CON__P35908;CON__P35908v2;sp|P35908|K22E_HUMAN</th>\n",
       "      <th>sp|Q86YZ3|HORN_HUMAN;CON__Q86YZ3</th>\n",
       "      <th>sp|A0A075B6H9|LV469_HUMAN</th>\n",
       "      <th>...</th>\n",
       "      <th>sp|Q6UWP8|SBSN_HUMAN</th>\n",
       "      <th>sp|Q6UXB8|PI16_HUMAN</th>\n",
       "      <th>sp|Q92736|RYR2_HUMAN</th>\n",
       "      <th>sp|Q96IY4|CBPB2_HUMAN</th>\n",
       "      <th>sp|Q96PD5|PGRP2_HUMAN</th>\n",
       "      <th>sp|Q9HDC9|APMAP_HUMAN</th>\n",
       "      <th>sp|Q9NZP8|C1RL_HUMAN</th>\n",
       "      <th>sp|Q9UBP9|GULP1_HUMAN</th>\n",
       "      <th>sp|Q9UGM5|FETUB_HUMAN</th>\n",
       "      <th>sp|Q9Y490|TLN1_HUMAN</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>005_HFX_HW_RAW_IMC_A1_106A</th>\n",
       "      <td>0.005043</td>\n",
       "      <td>0.003340</td>\n",
       "      <td>0.005721</td>\n",
       "      <td>0.003977</td>\n",
       "      <td>0.003699</td>\n",
       "      <td>0.003617</td>\n",
       "      <td>0.003311</td>\n",
       "      <td>0.003307</td>\n",
       "      <td>0.003341</td>\n",
       "      <td>0.003646</td>\n",
       "      <td>...</td>\n",
       "      <td>0.003123</td>\n",
       "      <td>0.004026</td>\n",
       "      <td>0.003507</td>\n",
       "      <td>0.003741</td>\n",
       "      <td>0.004301</td>\n",
       "      <td>0.003576</td>\n",
       "      <td>0.003508</td>\n",
       "      <td>0.004944</td>\n",
       "      <td>0.003605</td>\n",
       "      <td>0.003488</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>006_HFX_HW_RAW_IMC_A2_209A</th>\n",
       "      <td>0.005066</td>\n",
       "      <td>0.003415</td>\n",
       "      <td>0.005691</td>\n",
       "      <td>0.004041</td>\n",
       "      <td>0.003745</td>\n",
       "      <td>0.003832</td>\n",
       "      <td>0.003579</td>\n",
       "      <td>0.003604</td>\n",
       "      <td>0.003426</td>\n",
       "      <td>0.003602</td>\n",
       "      <td>...</td>\n",
       "      <td>0.002920</td>\n",
       "      <td>0.004026</td>\n",
       "      <td>0.003212</td>\n",
       "      <td>0.003836</td>\n",
       "      <td>0.004298</td>\n",
       "      <td>0.003556</td>\n",
       "      <td>0.002960</td>\n",
       "      <td>0.004953</td>\n",
       "      <td>0.003769</td>\n",
       "      <td>0.003402</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>012_HFX_HW_RAW_IMC_A8_214A</th>\n",
       "      <td>0.005009</td>\n",
       "      <td>0.003384</td>\n",
       "      <td>0.005749</td>\n",
       "      <td>0.004229</td>\n",
       "      <td>0.003396</td>\n",
       "      <td>0.003835</td>\n",
       "      <td>0.003384</td>\n",
       "      <td>0.003631</td>\n",
       "      <td>0.003212</td>\n",
       "      <td>0.003736</td>\n",
       "      <td>...</td>\n",
       "      <td>0.002313</td>\n",
       "      <td>0.004088</td>\n",
       "      <td>0.003234</td>\n",
       "      <td>0.003789</td>\n",
       "      <td>0.004361</td>\n",
       "      <td>0.003646</td>\n",
       "      <td>0.003249</td>\n",
       "      <td>0.005044</td>\n",
       "      <td>0.003458</td>\n",
       "      <td>0.003537</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>021_HFX_HW_RAW_IMC_C3_227A</th>\n",
       "      <td>0.005104</td>\n",
       "      <td>0.003611</td>\n",
       "      <td>0.005715</td>\n",
       "      <td>0.004242</td>\n",
       "      <td>0.003540</td>\n",
       "      <td>0.003493</td>\n",
       "      <td>0.003470</td>\n",
       "      <td>0.002952</td>\n",
       "      <td>0.003266</td>\n",
       "      <td>0.003694</td>\n",
       "      <td>...</td>\n",
       "      <td>0.003568</td>\n",
       "      <td>0.003988</td>\n",
       "      <td>0.003633</td>\n",
       "      <td>0.003643</td>\n",
       "      <td>0.004300</td>\n",
       "      <td>0.003338</td>\n",
       "      <td>0.003536</td>\n",
       "      <td>0.004862</td>\n",
       "      <td>0.003542</td>\n",
       "      <td>0.003543</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>024_HFX_HW_RAW_IMC_C6_124A</th>\n",
       "      <td>0.005069</td>\n",
       "      <td>0.003491</td>\n",
       "      <td>0.005646</td>\n",
       "      <td>0.004030</td>\n",
       "      <td>0.003563</td>\n",
       "      <td>0.003366</td>\n",
       "      <td>0.003573</td>\n",
       "      <td>0.003070</td>\n",
       "      <td>0.003213</td>\n",
       "      <td>0.003832</td>\n",
       "      <td>...</td>\n",
       "      <td>0.003001</td>\n",
       "      <td>0.003953</td>\n",
       "      <td>0.003704</td>\n",
       "      <td>0.003724</td>\n",
       "      <td>0.004321</td>\n",
       "      <td>0.003414</td>\n",
       "      <td>0.003623</td>\n",
       "      <td>0.004845</td>\n",
       "      <td>0.003561</td>\n",
       "      <td>0.003515</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 250 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                            CON__P00761  sp|P02533|K1C14_HUMAN;CON__P02533  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A     0.005043                           0.003340   \n",
       "006_HFX_HW_RAW_IMC_A2_209A     0.005066                           0.003415   \n",
       "012_HFX_HW_RAW_IMC_A8_214A     0.005009                           0.003384   \n",
       "021_HFX_HW_RAW_IMC_C3_227A     0.005104                           0.003611   \n",
       "024_HFX_HW_RAW_IMC_C6_124A     0.005069                           0.003491   \n",
       "\n",
       "                            sp|P02768|ALBU_HUMAN;CON__P02768-1  CON__P02769  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A                            0.005721     0.003977   \n",
       "006_HFX_HW_RAW_IMC_A2_209A                            0.005691     0.004041   \n",
       "012_HFX_HW_RAW_IMC_A8_214A                            0.005749     0.004229   \n",
       "021_HFX_HW_RAW_IMC_C3_227A                            0.005715     0.004242   \n",
       "024_HFX_HW_RAW_IMC_C6_124A                            0.005646     0.004030   \n",
       "\n",
       "                            sp|P48668|K2C6C_HUMAN;CON__P48668;CON__P04259  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A                                       0.003699   \n",
       "006_HFX_HW_RAW_IMC_A2_209A                                       0.003745   \n",
       "012_HFX_HW_RAW_IMC_A8_214A                                       0.003396   \n",
       "021_HFX_HW_RAW_IMC_C3_227A                                       0.003540   \n",
       "024_HFX_HW_RAW_IMC_C6_124A                                       0.003563   \n",
       "\n",
       "                            sp|P13645|K1C10_HUMAN;CON__P13645  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A                           0.003617   \n",
       "006_HFX_HW_RAW_IMC_A2_209A                           0.003832   \n",
       "012_HFX_HW_RAW_IMC_A8_214A                           0.003835   \n",
       "021_HFX_HW_RAW_IMC_C3_227A                           0.003493   \n",
       "024_HFX_HW_RAW_IMC_C6_124A                           0.003366   \n",
       "\n",
       "                            sp|P13647|K2C5_HUMAN;CON__P13647  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A                          0.003311   \n",
       "006_HFX_HW_RAW_IMC_A2_209A                          0.003579   \n",
       "012_HFX_HW_RAW_IMC_A8_214A                          0.003384   \n",
       "021_HFX_HW_RAW_IMC_C3_227A                          0.003470   \n",
       "024_HFX_HW_RAW_IMC_C6_124A                          0.003573   \n",
       "\n",
       "                            CON__P35908;CON__P35908v2;sp|P35908|K22E_HUMAN  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A                                        0.003307   \n",
       "006_HFX_HW_RAW_IMC_A2_209A                                        0.003604   \n",
       "012_HFX_HW_RAW_IMC_A8_214A                                        0.003631   \n",
       "021_HFX_HW_RAW_IMC_C3_227A                                        0.002952   \n",
       "024_HFX_HW_RAW_IMC_C6_124A                                        0.003070   \n",
       "\n",
       "                            sp|Q86YZ3|HORN_HUMAN;CON__Q86YZ3  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A                          0.003341   \n",
       "006_HFX_HW_RAW_IMC_A2_209A                          0.003426   \n",
       "012_HFX_HW_RAW_IMC_A8_214A                          0.003212   \n",
       "021_HFX_HW_RAW_IMC_C3_227A                          0.003266   \n",
       "024_HFX_HW_RAW_IMC_C6_124A                          0.003213   \n",
       "\n",
       "                            sp|A0A075B6H9|LV469_HUMAN  ...  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A                   0.003646  ...   \n",
       "006_HFX_HW_RAW_IMC_A2_209A                   0.003602  ...   \n",
       "012_HFX_HW_RAW_IMC_A8_214A                   0.003736  ...   \n",
       "021_HFX_HW_RAW_IMC_C3_227A                   0.003694  ...   \n",
       "024_HFX_HW_RAW_IMC_C6_124A                   0.003832  ...   \n",
       "\n",
       "                            sp|Q6UWP8|SBSN_HUMAN  sp|Q6UXB8|PI16_HUMAN  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A              0.003123              0.004026   \n",
       "006_HFX_HW_RAW_IMC_A2_209A              0.002920              0.004026   \n",
       "012_HFX_HW_RAW_IMC_A8_214A              0.002313              0.004088   \n",
       "021_HFX_HW_RAW_IMC_C3_227A              0.003568              0.003988   \n",
       "024_HFX_HW_RAW_IMC_C6_124A              0.003001              0.003953   \n",
       "\n",
       "                            sp|Q92736|RYR2_HUMAN  sp|Q96IY4|CBPB2_HUMAN  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A              0.003507               0.003741   \n",
       "006_HFX_HW_RAW_IMC_A2_209A              0.003212               0.003836   \n",
       "012_HFX_HW_RAW_IMC_A8_214A              0.003234               0.003789   \n",
       "021_HFX_HW_RAW_IMC_C3_227A              0.003633               0.003643   \n",
       "024_HFX_HW_RAW_IMC_C6_124A              0.003704               0.003724   \n",
       "\n",
       "                            sp|Q96PD5|PGRP2_HUMAN  sp|Q9HDC9|APMAP_HUMAN  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A               0.004301               0.003576   \n",
       "006_HFX_HW_RAW_IMC_A2_209A               0.004298               0.003556   \n",
       "012_HFX_HW_RAW_IMC_A8_214A               0.004361               0.003646   \n",
       "021_HFX_HW_RAW_IMC_C3_227A               0.004300               0.003338   \n",
       "024_HFX_HW_RAW_IMC_C6_124A               0.004321               0.003414   \n",
       "\n",
       "                            sp|Q9NZP8|C1RL_HUMAN  sp|Q9UBP9|GULP1_HUMAN  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A              0.003508               0.004944   \n",
       "006_HFX_HW_RAW_IMC_A2_209A              0.002960               0.004953   \n",
       "012_HFX_HW_RAW_IMC_A8_214A              0.003249               0.005044   \n",
       "021_HFX_HW_RAW_IMC_C3_227A              0.003536               0.004862   \n",
       "024_HFX_HW_RAW_IMC_C6_124A              0.003623               0.004845   \n",
       "\n",
       "                            sp|Q9UGM5|FETUB_HUMAN  sp|Q9Y490|TLN1_HUMAN  \n",
       "005_HFX_HW_RAW_IMC_A1_106A               0.003605              0.003488  \n",
       "006_HFX_HW_RAW_IMC_A2_209A               0.003769              0.003402  \n",
       "012_HFX_HW_RAW_IMC_A8_214A               0.003458              0.003537  \n",
       "021_HFX_HW_RAW_IMC_C3_227A               0.003542              0.003543  \n",
       "024_HFX_HW_RAW_IMC_C6_124A               0.003561              0.003515  \n",
       "\n",
       "[5 rows x 250 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "proteomics_rel = proteomics.div(proteomics.sum(axis=1), axis=0)\n",
    "proteomics_rel.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b37ceaa6-d8bc-4251-9cd7-97d819e7da29",
   "metadata": {},
   "source": [
    "Same thing but with CLR."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "1ea0ee20-3191-494f-b8d8-b507fc763046",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CON__P00761</th>\n",
       "      <th>sp|P02533|K1C14_HUMAN;CON__P02533</th>\n",
       "      <th>sp|P02768|ALBU_HUMAN;CON__P02768-1</th>\n",
       "      <th>CON__P02769</th>\n",
       "      <th>sp|P48668|K2C6C_HUMAN;CON__P48668;CON__P04259</th>\n",
       "      <th>sp|P13645|K1C10_HUMAN;CON__P13645</th>\n",
       "      <th>sp|P13647|K2C5_HUMAN;CON__P13647</th>\n",
       "      <th>CON__P35908;CON__P35908v2;sp|P35908|K22E_HUMAN</th>\n",
       "      <th>sp|Q86YZ3|HORN_HUMAN;CON__Q86YZ3</th>\n",
       "      <th>sp|A0A075B6H9|LV469_HUMAN</th>\n",
       "      <th>...</th>\n",
       "      <th>sp|Q6UWP8|SBSN_HUMAN</th>\n",
       "      <th>sp|Q6UXB8|PI16_HUMAN</th>\n",
       "      <th>sp|Q92736|RYR2_HUMAN</th>\n",
       "      <th>sp|Q96IY4|CBPB2_HUMAN</th>\n",
       "      <th>sp|Q96PD5|PGRP2_HUMAN</th>\n",
       "      <th>sp|Q9HDC9|APMAP_HUMAN</th>\n",
       "      <th>sp|Q9NZP8|C1RL_HUMAN</th>\n",
       "      <th>sp|Q9UBP9|GULP1_HUMAN</th>\n",
       "      <th>sp|Q9UGM5|FETUB_HUMAN</th>\n",
       "      <th>sp|Q9Y490|TLN1_HUMAN</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>005_HFX_HW_RAW_IMC_A1_106A</th>\n",
       "      <td>0.239511</td>\n",
       "      <td>-0.172531</td>\n",
       "      <td>0.365567</td>\n",
       "      <td>0.002103</td>\n",
       "      <td>-0.070532</td>\n",
       "      <td>-0.092927</td>\n",
       "      <td>-0.181283</td>\n",
       "      <td>-0.182458</td>\n",
       "      <td>-0.172353</td>\n",
       "      <td>-0.084852</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.239828</td>\n",
       "      <td>0.014328</td>\n",
       "      <td>-0.123777</td>\n",
       "      <td>-0.059142</td>\n",
       "      <td>0.080207</td>\n",
       "      <td>-0.104328</td>\n",
       "      <td>-0.123530</td>\n",
       "      <td>0.219635</td>\n",
       "      <td>-0.096319</td>\n",
       "      <td>-0.129157</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>006_HFX_HW_RAW_IMC_A2_209A</th>\n",
       "      <td>0.244758</td>\n",
       "      <td>-0.149664</td>\n",
       "      <td>0.361124</td>\n",
       "      <td>0.018572</td>\n",
       "      <td>-0.057437</td>\n",
       "      <td>-0.034510</td>\n",
       "      <td>-0.102677</td>\n",
       "      <td>-0.095676</td>\n",
       "      <td>-0.146277</td>\n",
       "      <td>-0.096280</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.306160</td>\n",
       "      <td>0.015059</td>\n",
       "      <td>-0.210779</td>\n",
       "      <td>-0.033462</td>\n",
       "      <td>0.080354</td>\n",
       "      <td>-0.109184</td>\n",
       "      <td>-0.292456</td>\n",
       "      <td>0.222211</td>\n",
       "      <td>-0.051110</td>\n",
       "      <td>-0.153367</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>012_HFX_HW_RAW_IMC_A8_214A</th>\n",
       "      <td>0.234427</td>\n",
       "      <td>-0.157710</td>\n",
       "      <td>0.372129</td>\n",
       "      <td>0.065003</td>\n",
       "      <td>-0.154378</td>\n",
       "      <td>-0.032611</td>\n",
       "      <td>-0.157766</td>\n",
       "      <td>-0.087288</td>\n",
       "      <td>-0.210017</td>\n",
       "      <td>-0.058797</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.538420</td>\n",
       "      <td>0.031110</td>\n",
       "      <td>-0.203268</td>\n",
       "      <td>-0.044789</td>\n",
       "      <td>0.095758</td>\n",
       "      <td>-0.083128</td>\n",
       "      <td>-0.198617</td>\n",
       "      <td>0.241382</td>\n",
       "      <td>-0.136174</td>\n",
       "      <td>-0.113674</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>021_HFX_HW_RAW_IMC_C3_227A</th>\n",
       "      <td>0.251985</td>\n",
       "      <td>-0.094045</td>\n",
       "      <td>0.364910</td>\n",
       "      <td>0.067021</td>\n",
       "      <td>-0.114100</td>\n",
       "      <td>-0.127468</td>\n",
       "      <td>-0.134019</td>\n",
       "      <td>-0.295493</td>\n",
       "      <td>-0.194528</td>\n",
       "      <td>-0.071387</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.106187</td>\n",
       "      <td>0.005176</td>\n",
       "      <td>-0.088113</td>\n",
       "      <td>-0.085279</td>\n",
       "      <td>0.080580</td>\n",
       "      <td>-0.172731</td>\n",
       "      <td>-0.115137</td>\n",
       "      <td>0.203443</td>\n",
       "      <td>-0.113494</td>\n",
       "      <td>-0.113087</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>024_HFX_HW_RAW_IMC_C6_124A</th>\n",
       "      <td>0.245111</td>\n",
       "      <td>-0.127821</td>\n",
       "      <td>0.352824</td>\n",
       "      <td>0.015557</td>\n",
       "      <td>-0.107531</td>\n",
       "      <td>-0.164258</td>\n",
       "      <td>-0.104819</td>\n",
       "      <td>-0.256382</td>\n",
       "      <td>-0.210797</td>\n",
       "      <td>-0.034678</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.279262</td>\n",
       "      <td>-0.003737</td>\n",
       "      <td>-0.068595</td>\n",
       "      <td>-0.063202</td>\n",
       "      <td>0.085393</td>\n",
       "      <td>-0.150254</td>\n",
       "      <td>-0.090691</td>\n",
       "      <td>0.199775</td>\n",
       "      <td>-0.107993</td>\n",
       "      <td>-0.121045</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 250 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                            CON__P00761  sp|P02533|K1C14_HUMAN;CON__P02533  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A     0.239511                          -0.172531   \n",
       "006_HFX_HW_RAW_IMC_A2_209A     0.244758                          -0.149664   \n",
       "012_HFX_HW_RAW_IMC_A8_214A     0.234427                          -0.157710   \n",
       "021_HFX_HW_RAW_IMC_C3_227A     0.251985                          -0.094045   \n",
       "024_HFX_HW_RAW_IMC_C6_124A     0.245111                          -0.127821   \n",
       "\n",
       "                            sp|P02768|ALBU_HUMAN;CON__P02768-1  CON__P02769  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A                            0.365567     0.002103   \n",
       "006_HFX_HW_RAW_IMC_A2_209A                            0.361124     0.018572   \n",
       "012_HFX_HW_RAW_IMC_A8_214A                            0.372129     0.065003   \n",
       "021_HFX_HW_RAW_IMC_C3_227A                            0.364910     0.067021   \n",
       "024_HFX_HW_RAW_IMC_C6_124A                            0.352824     0.015557   \n",
       "\n",
       "                            sp|P48668|K2C6C_HUMAN;CON__P48668;CON__P04259  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A                                      -0.070532   \n",
       "006_HFX_HW_RAW_IMC_A2_209A                                      -0.057437   \n",
       "012_HFX_HW_RAW_IMC_A8_214A                                      -0.154378   \n",
       "021_HFX_HW_RAW_IMC_C3_227A                                      -0.114100   \n",
       "024_HFX_HW_RAW_IMC_C6_124A                                      -0.107531   \n",
       "\n",
       "                            sp|P13645|K1C10_HUMAN;CON__P13645  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A                          -0.092927   \n",
       "006_HFX_HW_RAW_IMC_A2_209A                          -0.034510   \n",
       "012_HFX_HW_RAW_IMC_A8_214A                          -0.032611   \n",
       "021_HFX_HW_RAW_IMC_C3_227A                          -0.127468   \n",
       "024_HFX_HW_RAW_IMC_C6_124A                          -0.164258   \n",
       "\n",
       "                            sp|P13647|K2C5_HUMAN;CON__P13647  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A                         -0.181283   \n",
       "006_HFX_HW_RAW_IMC_A2_209A                         -0.102677   \n",
       "012_HFX_HW_RAW_IMC_A8_214A                         -0.157766   \n",
       "021_HFX_HW_RAW_IMC_C3_227A                         -0.134019   \n",
       "024_HFX_HW_RAW_IMC_C6_124A                         -0.104819   \n",
       "\n",
       "                            CON__P35908;CON__P35908v2;sp|P35908|K22E_HUMAN  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A                                       -0.182458   \n",
       "006_HFX_HW_RAW_IMC_A2_209A                                       -0.095676   \n",
       "012_HFX_HW_RAW_IMC_A8_214A                                       -0.087288   \n",
       "021_HFX_HW_RAW_IMC_C3_227A                                       -0.295493   \n",
       "024_HFX_HW_RAW_IMC_C6_124A                                       -0.256382   \n",
       "\n",
       "                            sp|Q86YZ3|HORN_HUMAN;CON__Q86YZ3  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A                         -0.172353   \n",
       "006_HFX_HW_RAW_IMC_A2_209A                         -0.146277   \n",
       "012_HFX_HW_RAW_IMC_A8_214A                         -0.210017   \n",
       "021_HFX_HW_RAW_IMC_C3_227A                         -0.194528   \n",
       "024_HFX_HW_RAW_IMC_C6_124A                         -0.210797   \n",
       "\n",
       "                            sp|A0A075B6H9|LV469_HUMAN  ...  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A                  -0.084852  ...   \n",
       "006_HFX_HW_RAW_IMC_A2_209A                  -0.096280  ...   \n",
       "012_HFX_HW_RAW_IMC_A8_214A                  -0.058797  ...   \n",
       "021_HFX_HW_RAW_IMC_C3_227A                  -0.071387  ...   \n",
       "024_HFX_HW_RAW_IMC_C6_124A                  -0.034678  ...   \n",
       "\n",
       "                            sp|Q6UWP8|SBSN_HUMAN  sp|Q6UXB8|PI16_HUMAN  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A             -0.239828              0.014328   \n",
       "006_HFX_HW_RAW_IMC_A2_209A             -0.306160              0.015059   \n",
       "012_HFX_HW_RAW_IMC_A8_214A             -0.538420              0.031110   \n",
       "021_HFX_HW_RAW_IMC_C3_227A             -0.106187              0.005176   \n",
       "024_HFX_HW_RAW_IMC_C6_124A             -0.279262             -0.003737   \n",
       "\n",
       "                            sp|Q92736|RYR2_HUMAN  sp|Q96IY4|CBPB2_HUMAN  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A             -0.123777              -0.059142   \n",
       "006_HFX_HW_RAW_IMC_A2_209A             -0.210779              -0.033462   \n",
       "012_HFX_HW_RAW_IMC_A8_214A             -0.203268              -0.044789   \n",
       "021_HFX_HW_RAW_IMC_C3_227A             -0.088113              -0.085279   \n",
       "024_HFX_HW_RAW_IMC_C6_124A             -0.068595              -0.063202   \n",
       "\n",
       "                            sp|Q96PD5|PGRP2_HUMAN  sp|Q9HDC9|APMAP_HUMAN  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A               0.080207              -0.104328   \n",
       "006_HFX_HW_RAW_IMC_A2_209A               0.080354              -0.109184   \n",
       "012_HFX_HW_RAW_IMC_A8_214A               0.095758              -0.083128   \n",
       "021_HFX_HW_RAW_IMC_C3_227A               0.080580              -0.172731   \n",
       "024_HFX_HW_RAW_IMC_C6_124A               0.085393              -0.150254   \n",
       "\n",
       "                            sp|Q9NZP8|C1RL_HUMAN  sp|Q9UBP9|GULP1_HUMAN  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A             -0.123530               0.219635   \n",
       "006_HFX_HW_RAW_IMC_A2_209A             -0.292456               0.222211   \n",
       "012_HFX_HW_RAW_IMC_A8_214A             -0.198617               0.241382   \n",
       "021_HFX_HW_RAW_IMC_C3_227A             -0.115137               0.203443   \n",
       "024_HFX_HW_RAW_IMC_C6_124A             -0.090691               0.199775   \n",
       "\n",
       "                            sp|Q9UGM5|FETUB_HUMAN  sp|Q9Y490|TLN1_HUMAN  \n",
       "005_HFX_HW_RAW_IMC_A1_106A              -0.096319             -0.129157  \n",
       "006_HFX_HW_RAW_IMC_A2_209A              -0.051110             -0.153367  \n",
       "012_HFX_HW_RAW_IMC_A8_214A              -0.136174             -0.113674  \n",
       "021_HFX_HW_RAW_IMC_C3_227A              -0.113494             -0.113087  \n",
       "024_HFX_HW_RAW_IMC_C6_124A              -0.107993             -0.121045  \n",
       "\n",
       "[5 rows x 250 columns]"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "proteomics_clr = pd.DataFrame(clr(proteomics + .001), index=proteomics.index, columns=proteomics.columns)\n",
    "proteomics_clr.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9de5df7c-0421-438b-86dd-64766522594a",
   "metadata": {},
   "source": [
    "Now we will pull the metadata from the non-abundance columns."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "28f85a63-f3ce-469b-b252-ef279554d166",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>BioID</th>\n",
       "      <th>Well</th>\n",
       "      <th>Run Number</th>\n",
       "      <th>Hospital</th>\n",
       "      <th>VisitCode</th>\n",
       "      <th>Age</th>\n",
       "      <th>Draw</th>\n",
       "      <th>Matrix</th>\n",
       "      <th>Draw_Matrix</th>\n",
       "      <th>Draw_Matrix_Time</th>\n",
       "      <th>Plate</th>\n",
       "      <th>Responder Status</th>\n",
       "      <th>Group_ID</th>\n",
       "      <th>Group_ID_Responder</th>\n",
       "      <th>Responder Status NVRHVR</th>\n",
       "      <th>Group_ID_Responder2Groups</th>\n",
       "      <th>BabyN</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>005_HFX_HW_RAW_IMC_A1_106A</th>\n",
       "      <td>106A</td>\n",
       "      <td>A1</td>\n",
       "      <td>5</td>\n",
       "      <td>Well Check 02m</td>\n",
       "      <td>V5</td>\n",
       "      <td>63</td>\n",
       "      <td>Heelstick</td>\n",
       "      <td>Serum</td>\n",
       "      <td>Heelstick_Serum</td>\n",
       "      <td>V5_Heelstick_Serum</td>\n",
       "      <td>1</td>\n",
       "      <td>LVR</td>\n",
       "      <td>V5_Heelstick_Serum_LVR</td>\n",
       "      <td>V5_Heelstick_Serum_LVR</td>\n",
       "      <td>NVR</td>\n",
       "      <td>V5_Heelstick_Serum_NVR</td>\n",
       "      <td>106</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>006_HFX_HW_RAW_IMC_A2_209A</th>\n",
       "      <td>209A</td>\n",
       "      <td>A2</td>\n",
       "      <td>6</td>\n",
       "      <td>Well Check 02m</td>\n",
       "      <td>V5</td>\n",
       "      <td>55</td>\n",
       "      <td>Heelstick</td>\n",
       "      <td>Serum</td>\n",
       "      <td>Heelstick_Serum</td>\n",
       "      <td>V5_Heelstick_Serum</td>\n",
       "      <td>1</td>\n",
       "      <td>NVR</td>\n",
       "      <td>V5_Heelstick_Serum_NVR</td>\n",
       "      <td>V5_Heelstick_Serum_NVR</td>\n",
       "      <td>NVR</td>\n",
       "      <td>V5_Heelstick_Serum_NVR</td>\n",
       "      <td>209</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>012_HFX_HW_RAW_IMC_A8_214A</th>\n",
       "      <td>214A</td>\n",
       "      <td>A8</td>\n",
       "      <td>12</td>\n",
       "      <td>Well Check 02m</td>\n",
       "      <td>V5</td>\n",
       "      <td>89</td>\n",
       "      <td>Heelstick</td>\n",
       "      <td>Serum</td>\n",
       "      <td>Heelstick_Serum</td>\n",
       "      <td>V5_Heelstick_Serum</td>\n",
       "      <td>1</td>\n",
       "      <td>HVR</td>\n",
       "      <td>V5_Heelstick_Serum_HVR</td>\n",
       "      <td>V5_Heelstick_Serum_HVR</td>\n",
       "      <td>HVR</td>\n",
       "      <td>V5_Heelstick_Serum_HVR</td>\n",
       "      <td>214</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>021_HFX_HW_RAW_IMC_C3_227A</th>\n",
       "      <td>227A</td>\n",
       "      <td>C3</td>\n",
       "      <td>21</td>\n",
       "      <td>Well Check 02m</td>\n",
       "      <td>V5</td>\n",
       "      <td>57</td>\n",
       "      <td>Heelstick</td>\n",
       "      <td>Serum</td>\n",
       "      <td>Heelstick_Serum</td>\n",
       "      <td>V5_Heelstick_Serum</td>\n",
       "      <td>1</td>\n",
       "      <td>HVR</td>\n",
       "      <td>V5_Heelstick_Serum_HVR</td>\n",
       "      <td>V5_Heelstick_Serum_HVR</td>\n",
       "      <td>HVR</td>\n",
       "      <td>V5_Heelstick_Serum_HVR</td>\n",
       "      <td>226</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>024_HFX_HW_RAW_IMC_C6_124A</th>\n",
       "      <td>124A</td>\n",
       "      <td>C6</td>\n",
       "      <td>24</td>\n",
       "      <td>Well Check 02m</td>\n",
       "      <td>V5</td>\n",
       "      <td>97</td>\n",
       "      <td>Heelstick</td>\n",
       "      <td>Serum</td>\n",
       "      <td>Heelstick_Serum</td>\n",
       "      <td>V5_Heelstick_Serum</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>V5_Heelstick_Serum_NA</td>\n",
       "      <td>V5_Heelstick_Serum_NA</td>\n",
       "      <td>NaN</td>\n",
       "      <td>V5_Heelstick_Serum_NA</td>\n",
       "      <td>124</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                           BioID Well Run Number        Hospital VisitCode  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A  106A   A1          5  Well Check 02m        V5   \n",
       "006_HFX_HW_RAW_IMC_A2_209A  209A   A2          6  Well Check 02m        V5   \n",
       "012_HFX_HW_RAW_IMC_A8_214A  214A   A8         12  Well Check 02m        V5   \n",
       "021_HFX_HW_RAW_IMC_C3_227A  227A   C3         21  Well Check 02m        V5   \n",
       "024_HFX_HW_RAW_IMC_C6_124A  124A   C6         24  Well Check 02m        V5   \n",
       "\n",
       "                           Age       Draw Matrix      Draw_Matrix  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A  63  Heelstick  Serum  Heelstick_Serum   \n",
       "006_HFX_HW_RAW_IMC_A2_209A  55  Heelstick  Serum  Heelstick_Serum   \n",
       "012_HFX_HW_RAW_IMC_A8_214A  89  Heelstick  Serum  Heelstick_Serum   \n",
       "021_HFX_HW_RAW_IMC_C3_227A  57  Heelstick  Serum  Heelstick_Serum   \n",
       "024_HFX_HW_RAW_IMC_C6_124A  97  Heelstick  Serum  Heelstick_Serum   \n",
       "\n",
       "                              Draw_Matrix_Time Plate Responder Status  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A  V5_Heelstick_Serum     1              LVR   \n",
       "006_HFX_HW_RAW_IMC_A2_209A  V5_Heelstick_Serum     1              NVR   \n",
       "012_HFX_HW_RAW_IMC_A8_214A  V5_Heelstick_Serum     1              HVR   \n",
       "021_HFX_HW_RAW_IMC_C3_227A  V5_Heelstick_Serum     1              HVR   \n",
       "024_HFX_HW_RAW_IMC_C6_124A  V5_Heelstick_Serum     1              NaN   \n",
       "\n",
       "                                          Group_ID      Group_ID_Responder  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A  V5_Heelstick_Serum_LVR  V5_Heelstick_Serum_LVR   \n",
       "006_HFX_HW_RAW_IMC_A2_209A  V5_Heelstick_Serum_NVR  V5_Heelstick_Serum_NVR   \n",
       "012_HFX_HW_RAW_IMC_A8_214A  V5_Heelstick_Serum_HVR  V5_Heelstick_Serum_HVR   \n",
       "021_HFX_HW_RAW_IMC_C3_227A  V5_Heelstick_Serum_HVR  V5_Heelstick_Serum_HVR   \n",
       "024_HFX_HW_RAW_IMC_C6_124A   V5_Heelstick_Serum_NA   V5_Heelstick_Serum_NA   \n",
       "\n",
       "                           Responder Status NVRHVR Group_ID_Responder2Groups  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A                     NVR    V5_Heelstick_Serum_NVR   \n",
       "006_HFX_HW_RAW_IMC_A2_209A                     NVR    V5_Heelstick_Serum_NVR   \n",
       "012_HFX_HW_RAW_IMC_A8_214A                     HVR    V5_Heelstick_Serum_HVR   \n",
       "021_HFX_HW_RAW_IMC_C3_227A                     HVR    V5_Heelstick_Serum_HVR   \n",
       "024_HFX_HW_RAW_IMC_C6_124A                     NaN     V5_Heelstick_Serum_NA   \n",
       "\n",
       "                            BabyN  \n",
       "005_HFX_HW_RAW_IMC_A1_106A    106  \n",
       "006_HFX_HW_RAW_IMC_A2_209A    209  \n",
       "012_HFX_HW_RAW_IMC_A8_214A    214  \n",
       "021_HFX_HW_RAW_IMC_C3_227A    226  \n",
       "024_HFX_HW_RAW_IMC_C6_124A    124  "
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "meta_base = raw_proteomics.loc[[i for i in raw_proteomics.index if i.startswith('LFQ intensity')],\n",
    "                               raw_proteomics.columns[:list(raw_proteomics.columns).index('Subject ID')+1]]\n",
    "meta_base.index = [i.split()[-1] for i in meta_base.index]\n",
    "column_name_replacements = {'Subject ID': 'BabyN', 'VisitID': 'VisitCode'}\n",
    "meta_base.columns = [i if i not in column_name_replacements else column_name_replacements[i] for i in meta_base.columns]\n",
    "meta_base['BabyN'] = [int(i) for i in meta_base['BabyN']]\n",
    "meta_base.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2e2d9d0a-aab5-4cb6-b2d8-c865a2d4dc21",
   "metadata": {},
   "source": [
    "Bring in titer data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "387aabaf-39db-4a87-8fd7-9e129a748afc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PT</th>\n",
       "      <th>Dip</th>\n",
       "      <th>FHA</th>\n",
       "      <th>PRN</th>\n",
       "      <th>TET</th>\n",
       "      <th>PRP (Hib)</th>\n",
       "      <th>PCV ST1</th>\n",
       "      <th>PCV ST3</th>\n",
       "      <th>PCV ST4</th>\n",
       "      <th>PCV ST5</th>\n",
       "      <th>...</th>\n",
       "      <th>median_mmNorm</th>\n",
       "      <th>median_mmNorm_DTAPHib</th>\n",
       "      <th>median_mmNorm_PCV</th>\n",
       "      <th>PT_protected</th>\n",
       "      <th>Dip_protected</th>\n",
       "      <th>FHA_protected</th>\n",
       "      <th>PRN_protected</th>\n",
       "      <th>TET_protected</th>\n",
       "      <th>PRP (Hib)_protected</th>\n",
       "      <th>VR_group</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>106</th>\n",
       "      <td>2.5</td>\n",
       "      <td>0.21</td>\n",
       "      <td>11.0</td>\n",
       "      <td>2.5</td>\n",
       "      <td>0.30</td>\n",
       "      <td>0.39</td>\n",
       "      <td>141.0</td>\n",
       "      <td>35.0</td>\n",
       "      <td>56.0</td>\n",
       "      <td>139.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.061955</td>\n",
       "      <td>0.052874</td>\n",
       "      <td>0.061955</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>107</th>\n",
       "      <td>2.5</td>\n",
       "      <td>0.44</td>\n",
       "      <td>3.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>0.52</td>\n",
       "      <td>1.60</td>\n",
       "      <td>2430.0</td>\n",
       "      <td>415.0</td>\n",
       "      <td>194.0</td>\n",
       "      <td>332.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.449483</td>\n",
       "      <td>0.114018</td>\n",
       "      <td>0.958142</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>108</th>\n",
       "      <td>2.5</td>\n",
       "      <td>0.05</td>\n",
       "      <td>1.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.27</td>\n",
       "      <td>21.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>24.0</td>\n",
       "      <td>41.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.003102</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>LVR</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>109</th>\n",
       "      <td>27.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>63.0</td>\n",
       "      <td>1.35</td>\n",
       "      <td>7.02</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>0.700925</td>\n",
       "      <td>0.763049</td>\n",
       "      <td>0.486810</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>110</th>\n",
       "      <td>14.0</td>\n",
       "      <td>0.24</td>\n",
       "      <td>15.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>2.45</td>\n",
       "      <td>NaN</td>\n",
       "      <td>301.0</td>\n",
       "      <td>63.0</td>\n",
       "      <td>400.0</td>\n",
       "      <td>289.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.266219</td>\n",
       "      <td>0.284211</td>\n",
       "      <td>0.245121</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 48 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       PT   Dip   FHA   PRN   TET  PRP (Hib)  PCV ST1  PCV ST3  PCV ST4  \\\n",
       "106   2.5  0.21  11.0   2.5  0.30       0.39    141.0     35.0     56.0   \n",
       "107   2.5  0.44   3.0   9.0  0.52       1.60   2430.0    415.0    194.0   \n",
       "108   2.5  0.05   1.5   2.5  0.05       0.27     21.0      3.0     24.0   \n",
       "109  27.0   NaN   NaN  63.0  1.35       7.02      NaN      NaN      NaN   \n",
       "110  14.0  0.24  15.0  20.0  2.45        NaN    301.0     63.0    400.0   \n",
       "\n",
       "     PCV ST5  ...  median_mmNorm  median_mmNorm_DTAPHib  median_mmNorm_PCV  \\\n",
       "106    139.0  ...       0.061955               0.052874           0.061955   \n",
       "107    332.0  ...       0.449483               0.114018           0.958142   \n",
       "108     41.0  ...       0.000000               0.000000           0.003102   \n",
       "109      NaN  ...       0.700925               0.763049           0.486810   \n",
       "110    289.0  ...       0.266219               0.284211           0.245121   \n",
       "\n",
       "     PT_protected  Dip_protected  FHA_protected  PRN_protected  TET_protected  \\\n",
       "106         False           True           True          False           True   \n",
       "107         False           True          False           True           True   \n",
       "108         False          False          False          False          False   \n",
       "109          True          False          False           True           True   \n",
       "110          True           True           True           True           True   \n",
       "\n",
       "     PRP (Hib)_protected  VR_group  \n",
       "106                 True       NVR  \n",
       "107                 True       NVR  \n",
       "108                 True       LVR  \n",
       "109                 True       NVR  \n",
       "110                False       NVR  \n",
       "\n",
       "[5 rows x 48 columns]"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "titer_data = pd.read_csv('../../data/vaccine_response/vaccine_response_y1.tsv', sep='\\t', index_col=0)\n",
    "titer_data.index = [int(i.split('Baby')[-1]) for i in titer_data.index]\n",
    "titer_data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3c433fe5-9012-41c8-a902-4ba27d3da7e8",
   "metadata": {},
   "source": [
    "Split titer data to be per sample that we have in the proteomics metadata."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "8d366c59-6e0e-4226-a92b-7806106031ff",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PT</th>\n",
       "      <th>Dip</th>\n",
       "      <th>FHA</th>\n",
       "      <th>PRN</th>\n",
       "      <th>TET</th>\n",
       "      <th>PRP (Hib)</th>\n",
       "      <th>PCV ST1</th>\n",
       "      <th>PCV ST3</th>\n",
       "      <th>PCV ST4</th>\n",
       "      <th>PCV ST5</th>\n",
       "      <th>...</th>\n",
       "      <th>median_mmNorm</th>\n",
       "      <th>median_mmNorm_DTAPHib</th>\n",
       "      <th>median_mmNorm_PCV</th>\n",
       "      <th>PT_protected</th>\n",
       "      <th>Dip_protected</th>\n",
       "      <th>FHA_protected</th>\n",
       "      <th>PRN_protected</th>\n",
       "      <th>TET_protected</th>\n",
       "      <th>PRP (Hib)_protected</th>\n",
       "      <th>VR_group</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>005_HFX_HW_RAW_IMC_A1_106A</th>\n",
       "      <td>2.5</td>\n",
       "      <td>0.21</td>\n",
       "      <td>11.0</td>\n",
       "      <td>2.5</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.39</td>\n",
       "      <td>141.0</td>\n",
       "      <td>35.0</td>\n",
       "      <td>56.0</td>\n",
       "      <td>139.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.061955</td>\n",
       "      <td>0.052874</td>\n",
       "      <td>0.061955</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>006_HFX_HW_RAW_IMC_A2_209A</th>\n",
       "      <td>5.0</td>\n",
       "      <td>0.29</td>\n",
       "      <td>7.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>0.27</td>\n",
       "      <td>1.17</td>\n",
       "      <td>154.0</td>\n",
       "      <td>40.0</td>\n",
       "      <td>89.0</td>\n",
       "      <td>679.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.102041</td>\n",
       "      <td>0.105087</td>\n",
       "      <td>0.074972</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>012_HFX_HW_RAW_IMC_A8_214A</th>\n",
       "      <td>12.0</td>\n",
       "      <td>0.28</td>\n",
       "      <td>29.0</td>\n",
       "      <td>19.0</td>\n",
       "      <td>0.66</td>\n",
       "      <td>4.7</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>0.310899</td>\n",
       "      <td>0.310899</td>\n",
       "      <td>NaN</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>021_HFX_HW_RAW_IMC_C3_227A</th>\n",
       "      <td>6.0</td>\n",
       "      <td>0.25</td>\n",
       "      <td>11.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>0.82</td>\n",
       "      <td>2.25</td>\n",
       "      <td>381.0</td>\n",
       "      <td>94.0</td>\n",
       "      <td>90.0</td>\n",
       "      <td>322.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.191269</td>\n",
       "      <td>0.205742</td>\n",
       "      <td>0.139576</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>026_HFX_HW_RAW_IMC_C8_208A</th>\n",
       "      <td>6.0</td>\n",
       "      <td>0.32</td>\n",
       "      <td>9.0</td>\n",
       "      <td>2.5</td>\n",
       "      <td>0.14</td>\n",
       "      <td>0.91</td>\n",
       "      <td>297.0</td>\n",
       "      <td>193.0</td>\n",
       "      <td>181.0</td>\n",
       "      <td>278.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.125416</td>\n",
       "      <td>0.113055</td>\n",
       "      <td>0.125416</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 48 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                              PT   Dip   FHA   PRN   TET PRP (Hib) PCV ST1  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A   2.5  0.21  11.0   2.5   0.3      0.39   141.0   \n",
       "006_HFX_HW_RAW_IMC_A2_209A   5.0  0.29   7.0   5.0  0.27      1.17   154.0   \n",
       "012_HFX_HW_RAW_IMC_A8_214A  12.0  0.28  29.0  19.0  0.66       4.7     NaN   \n",
       "021_HFX_HW_RAW_IMC_C3_227A   6.0  0.25  11.0  20.0  0.82      2.25   381.0   \n",
       "026_HFX_HW_RAW_IMC_C8_208A   6.0  0.32   9.0   2.5  0.14      0.91   297.0   \n",
       "\n",
       "                           PCV ST3 PCV ST4 PCV ST5  ... median_mmNorm  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A    35.0    56.0   139.0  ...      0.061955   \n",
       "006_HFX_HW_RAW_IMC_A2_209A    40.0    89.0   679.0  ...      0.102041   \n",
       "012_HFX_HW_RAW_IMC_A8_214A     NaN     NaN     NaN  ...      0.310899   \n",
       "021_HFX_HW_RAW_IMC_C3_227A    94.0    90.0   322.0  ...      0.191269   \n",
       "026_HFX_HW_RAW_IMC_C8_208A   193.0   181.0   278.0  ...      0.125416   \n",
       "\n",
       "                           median_mmNorm_DTAPHib median_mmNorm_PCV  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A              0.052874          0.061955   \n",
       "006_HFX_HW_RAW_IMC_A2_209A              0.105087          0.074972   \n",
       "012_HFX_HW_RAW_IMC_A8_214A              0.310899               NaN   \n",
       "021_HFX_HW_RAW_IMC_C3_227A              0.205742          0.139576   \n",
       "026_HFX_HW_RAW_IMC_C8_208A              0.113055          0.125416   \n",
       "\n",
       "                           PT_protected Dip_protected FHA_protected  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A        False          True          True   \n",
       "006_HFX_HW_RAW_IMC_A2_209A        False          True         False   \n",
       "012_HFX_HW_RAW_IMC_A8_214A         True          True          True   \n",
       "021_HFX_HW_RAW_IMC_C3_227A        False          True          True   \n",
       "026_HFX_HW_RAW_IMC_C8_208A        False          True          True   \n",
       "\n",
       "                           PRN_protected TET_protected PRP (Hib)_protected  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A         False          True                True   \n",
       "006_HFX_HW_RAW_IMC_A2_209A         False          True                True   \n",
       "012_HFX_HW_RAW_IMC_A8_214A          True          True                True   \n",
       "021_HFX_HW_RAW_IMC_C3_227A          True          True                True   \n",
       "026_HFX_HW_RAW_IMC_C8_208A         False          True                True   \n",
       "\n",
       "                           VR_group  \n",
       "005_HFX_HW_RAW_IMC_A1_106A      NVR  \n",
       "006_HFX_HW_RAW_IMC_A2_209A      NVR  \n",
       "012_HFX_HW_RAW_IMC_A8_214A      NVR  \n",
       "021_HFX_HW_RAW_IMC_C3_227A      NVR  \n",
       "026_HFX_HW_RAW_IMC_C8_208A      NVR  \n",
       "\n",
       "[5 rows x 48 columns]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "per_sample_titer_data = pd.DataFrame({sample: titer_data.loc[i] for sample, i in meta_base['BabyN'].iteritems() if i in titer_data.index}).transpose()\n",
    "per_sample_titer_data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a0c67278-4a14-4be4-bd30-ce3ada7712e1",
   "metadata": {},
   "source": [
    "Merge proteomics metadata and titer data. Remove samples without a VR group."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "f6f8040f-3273-408e-893d-bc1a6e3e7dc5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>BioID</th>\n",
       "      <th>Well</th>\n",
       "      <th>Run Number</th>\n",
       "      <th>Hospital</th>\n",
       "      <th>VisitCode</th>\n",
       "      <th>Age</th>\n",
       "      <th>Draw</th>\n",
       "      <th>Matrix</th>\n",
       "      <th>Draw_Matrix</th>\n",
       "      <th>Draw_Matrix_Time</th>\n",
       "      <th>...</th>\n",
       "      <th>median_mmNorm</th>\n",
       "      <th>median_mmNorm_DTAPHib</th>\n",
       "      <th>median_mmNorm_PCV</th>\n",
       "      <th>PT_protected</th>\n",
       "      <th>Dip_protected</th>\n",
       "      <th>FHA_protected</th>\n",
       "      <th>PRN_protected</th>\n",
       "      <th>TET_protected</th>\n",
       "      <th>PRP (Hib)_protected</th>\n",
       "      <th>VR_group</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>005_HFX_HW_RAW_IMC_A1_106A</th>\n",
       "      <td>106A</td>\n",
       "      <td>A1</td>\n",
       "      <td>5</td>\n",
       "      <td>Well Check 02m</td>\n",
       "      <td>V5</td>\n",
       "      <td>63</td>\n",
       "      <td>Heelstick</td>\n",
       "      <td>Serum</td>\n",
       "      <td>Heelstick_Serum</td>\n",
       "      <td>V5_Heelstick_Serum</td>\n",
       "      <td>...</td>\n",
       "      <td>0.061955</td>\n",
       "      <td>0.052874</td>\n",
       "      <td>0.061955</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>006_HFX_HW_RAW_IMC_A2_209A</th>\n",
       "      <td>209A</td>\n",
       "      <td>A2</td>\n",
       "      <td>6</td>\n",
       "      <td>Well Check 02m</td>\n",
       "      <td>V5</td>\n",
       "      <td>55</td>\n",
       "      <td>Heelstick</td>\n",
       "      <td>Serum</td>\n",
       "      <td>Heelstick_Serum</td>\n",
       "      <td>V5_Heelstick_Serum</td>\n",
       "      <td>...</td>\n",
       "      <td>0.102041</td>\n",
       "      <td>0.105087</td>\n",
       "      <td>0.074972</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>012_HFX_HW_RAW_IMC_A8_214A</th>\n",
       "      <td>214A</td>\n",
       "      <td>A8</td>\n",
       "      <td>12</td>\n",
       "      <td>Well Check 02m</td>\n",
       "      <td>V5</td>\n",
       "      <td>89</td>\n",
       "      <td>Heelstick</td>\n",
       "      <td>Serum</td>\n",
       "      <td>Heelstick_Serum</td>\n",
       "      <td>V5_Heelstick_Serum</td>\n",
       "      <td>...</td>\n",
       "      <td>0.310899</td>\n",
       "      <td>0.310899</td>\n",
       "      <td>NaN</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>021_HFX_HW_RAW_IMC_C3_227A</th>\n",
       "      <td>227A</td>\n",
       "      <td>C3</td>\n",
       "      <td>21</td>\n",
       "      <td>Well Check 02m</td>\n",
       "      <td>V5</td>\n",
       "      <td>57</td>\n",
       "      <td>Heelstick</td>\n",
       "      <td>Serum</td>\n",
       "      <td>Heelstick_Serum</td>\n",
       "      <td>V5_Heelstick_Serum</td>\n",
       "      <td>...</td>\n",
       "      <td>0.191269</td>\n",
       "      <td>0.205742</td>\n",
       "      <td>0.139576</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>026_HFX_HW_RAW_IMC_C8_208A</th>\n",
       "      <td>208A</td>\n",
       "      <td>C8</td>\n",
       "      <td>26</td>\n",
       "      <td>Well Check 02m</td>\n",
       "      <td>V5</td>\n",
       "      <td>63</td>\n",
       "      <td>Heelstick</td>\n",
       "      <td>Serum</td>\n",
       "      <td>Heelstick_Serum</td>\n",
       "      <td>V5_Heelstick_Serum</td>\n",
       "      <td>...</td>\n",
       "      <td>0.125416</td>\n",
       "      <td>0.113055</td>\n",
       "      <td>0.125416</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 65 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                           BioID Well Run Number        Hospital VisitCode  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A  106A   A1          5  Well Check 02m        V5   \n",
       "006_HFX_HW_RAW_IMC_A2_209A  209A   A2          6  Well Check 02m        V5   \n",
       "012_HFX_HW_RAW_IMC_A8_214A  214A   A8         12  Well Check 02m        V5   \n",
       "021_HFX_HW_RAW_IMC_C3_227A  227A   C3         21  Well Check 02m        V5   \n",
       "026_HFX_HW_RAW_IMC_C8_208A  208A   C8         26  Well Check 02m        V5   \n",
       "\n",
       "                           Age       Draw Matrix      Draw_Matrix  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A  63  Heelstick  Serum  Heelstick_Serum   \n",
       "006_HFX_HW_RAW_IMC_A2_209A  55  Heelstick  Serum  Heelstick_Serum   \n",
       "012_HFX_HW_RAW_IMC_A8_214A  89  Heelstick  Serum  Heelstick_Serum   \n",
       "021_HFX_HW_RAW_IMC_C3_227A  57  Heelstick  Serum  Heelstick_Serum   \n",
       "026_HFX_HW_RAW_IMC_C8_208A  63  Heelstick  Serum  Heelstick_Serum   \n",
       "\n",
       "                              Draw_Matrix_Time  ... median_mmNorm  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A  V5_Heelstick_Serum  ...      0.061955   \n",
       "006_HFX_HW_RAW_IMC_A2_209A  V5_Heelstick_Serum  ...      0.102041   \n",
       "012_HFX_HW_RAW_IMC_A8_214A  V5_Heelstick_Serum  ...      0.310899   \n",
       "021_HFX_HW_RAW_IMC_C3_227A  V5_Heelstick_Serum  ...      0.191269   \n",
       "026_HFX_HW_RAW_IMC_C8_208A  V5_Heelstick_Serum  ...      0.125416   \n",
       "\n",
       "                           median_mmNorm_DTAPHib median_mmNorm_PCV  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A              0.052874          0.061955   \n",
       "006_HFX_HW_RAW_IMC_A2_209A              0.105087          0.074972   \n",
       "012_HFX_HW_RAW_IMC_A8_214A              0.310899               NaN   \n",
       "021_HFX_HW_RAW_IMC_C3_227A              0.205742          0.139576   \n",
       "026_HFX_HW_RAW_IMC_C8_208A              0.113055          0.125416   \n",
       "\n",
       "                           PT_protected Dip_protected FHA_protected  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A        False          True          True   \n",
       "006_HFX_HW_RAW_IMC_A2_209A        False          True         False   \n",
       "012_HFX_HW_RAW_IMC_A8_214A         True          True          True   \n",
       "021_HFX_HW_RAW_IMC_C3_227A        False          True          True   \n",
       "026_HFX_HW_RAW_IMC_C8_208A        False          True          True   \n",
       "\n",
       "                            PRN_protected TET_protected PRP (Hib)_protected  \\\n",
       "005_HFX_HW_RAW_IMC_A1_106A          False          True                True   \n",
       "006_HFX_HW_RAW_IMC_A2_209A          False          True                True   \n",
       "012_HFX_HW_RAW_IMC_A8_214A           True          True                True   \n",
       "021_HFX_HW_RAW_IMC_C3_227A           True          True                True   \n",
       "026_HFX_HW_RAW_IMC_C8_208A          False          True                True   \n",
       "\n",
       "                           VR_group  \n",
       "005_HFX_HW_RAW_IMC_A1_106A      NVR  \n",
       "006_HFX_HW_RAW_IMC_A2_209A      NVR  \n",
       "012_HFX_HW_RAW_IMC_A8_214A      NVR  \n",
       "021_HFX_HW_RAW_IMC_C3_227A      NVR  \n",
       "026_HFX_HW_RAW_IMC_C8_208A      NVR  \n",
       "\n",
       "[5 rows x 65 columns]"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "meta = pd.concat([meta_base, per_sample_titer_data], axis=1)\n",
    "meta = meta.loc[~pd.isna(meta['VR_group'])]\n",
    "meta.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "639d7691-4823-4d09-b659-14128b41c750",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(47, 65)\n"
     ]
    }
   ],
   "source": [
    "in_both = list(set(meta.index) & set(proteomics.index))\n",
    "meta_matched = meta.loc[in_both]\n",
    "print(meta_matched.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "5217001f-d927-4245-ace0-36f9879b5226",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "V5    45\n",
       "V6     2\n",
       "Name: VisitCode, dtype: int64"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "meta_matched['VisitCode'].value_counts()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "27938a15-31b3-4d92-bf41-44b6fe6c9135",
   "metadata": {},
   "source": [
    "47 samples are in the metadata and proteomics data. Of those two are V6. We will filter those out."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "834373d2-6bf7-402e-b7c0-2f28b62f6c2e",
   "metadata": {},
   "outputs": [],
   "source": [
    "meta_v5 = meta_matched.query(\"VisitCode == 'V5'\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "46190c13-2458-4d76-8fb9-25d077252677",
   "metadata": {},
   "source": [
    "## Do correlation with un-normalized data\n",
    "\n",
    "We will do our correlations between proteomics and median titer. I used Spearman correlation and Benjamini-Hochberg for FDR correction per set of tests."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "ec869bc4-a645-43c7-815d-a39fb763d455",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>sp|P60709|ACTB_HUMAN;sp|P63261|ACTG_HUMAN</th>\n",
       "      <td>-0.518353</td>\n",
       "      <td>0.000265</td>\n",
       "      <td>0.066211</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P68871|HBB_HUMAN</th>\n",
       "      <td>-0.472685</td>\n",
       "      <td>0.001043</td>\n",
       "      <td>0.087363</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P69905|HBA_HUMAN</th>\n",
       "      <td>-0.472488</td>\n",
       "      <td>0.001048</td>\n",
       "      <td>0.087363</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|O75636|FCN3_HUMAN</th>\n",
       "      <td>0.461417</td>\n",
       "      <td>0.001421</td>\n",
       "      <td>0.088834</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P08697|A2AP_HUMAN</th>\n",
       "      <td>-0.395980</td>\n",
       "      <td>0.007089</td>\n",
       "      <td>0.316359</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P02042|HBD_HUMAN</th>\n",
       "      <td>-0.392883</td>\n",
       "      <td>0.007593</td>\n",
       "      <td>0.316359</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|A0A075B6S2|KVD29_HUMAN;sp|A2NJV5|KV229_HUMAN;sp|A0A0A0MRZ7|KVD26_HUMAN</th>\n",
       "      <td>-0.356046</td>\n",
       "      <td>0.016374</td>\n",
       "      <td>0.486481</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P69891|HBG1_HUMAN</th>\n",
       "      <td>-0.355980</td>\n",
       "      <td>0.016395</td>\n",
       "      <td>0.486481</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P05156|CFAI_HUMAN</th>\n",
       "      <td>0.352619</td>\n",
       "      <td>0.017513</td>\n",
       "      <td>0.486481</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P0DP02|HVC33_HUMAN</th>\n",
       "      <td>-0.347084</td>\n",
       "      <td>0.019495</td>\n",
       "      <td>0.487375</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|Q9UBP9|GULP1_HUMAN</th>\n",
       "      <td>0.330412</td>\n",
       "      <td>0.026639</td>\n",
       "      <td>0.605430</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P02750|A2GL_HUMAN</th>\n",
       "      <td>-0.315124</td>\n",
       "      <td>0.034990</td>\n",
       "      <td>0.635904</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|Q96PD5|PGRP2_HUMAN</th>\n",
       "      <td>0.310840</td>\n",
       "      <td>0.037682</td>\n",
       "      <td>0.635904</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P10643|CO7_HUMAN</th>\n",
       "      <td>0.305898</td>\n",
       "      <td>0.040998</td>\n",
       "      <td>0.635904</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P32119|PRDX2_HUMAN</th>\n",
       "      <td>-0.302669</td>\n",
       "      <td>0.043290</td>\n",
       "      <td>0.635904</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                         rho   p_value  \\\n",
       "sp|P60709|ACTB_HUMAN;sp|P63261|ACTG_HUMAN          -0.518353  0.000265   \n",
       "sp|P68871|HBB_HUMAN                                -0.472685  0.001043   \n",
       "sp|P69905|HBA_HUMAN                                -0.472488  0.001048   \n",
       "sp|O75636|FCN3_HUMAN                                0.461417  0.001421   \n",
       "sp|P08697|A2AP_HUMAN                               -0.395980  0.007089   \n",
       "sp|P02042|HBD_HUMAN                                -0.392883  0.007593   \n",
       "sp|A0A075B6S2|KVD29_HUMAN;sp|A2NJV5|KV229_HUMAN... -0.356046  0.016374   \n",
       "sp|P69891|HBG1_HUMAN                               -0.355980  0.016395   \n",
       "sp|P05156|CFAI_HUMAN                                0.352619  0.017513   \n",
       "sp|P0DP02|HVC33_HUMAN                              -0.347084  0.019495   \n",
       "sp|Q9UBP9|GULP1_HUMAN                               0.330412  0.026639   \n",
       "sp|P02750|A2GL_HUMAN                               -0.315124  0.034990   \n",
       "sp|Q96PD5|PGRP2_HUMAN                               0.310840  0.037682   \n",
       "sp|P10643|CO7_HUMAN                                 0.305898  0.040998   \n",
       "sp|P32119|PRDX2_HUMAN                              -0.302669  0.043290   \n",
       "\n",
       "                                                       p_adj  \n",
       "sp|P60709|ACTB_HUMAN;sp|P63261|ACTG_HUMAN           0.066211  \n",
       "sp|P68871|HBB_HUMAN                                 0.087363  \n",
       "sp|P69905|HBA_HUMAN                                 0.087363  \n",
       "sp|O75636|FCN3_HUMAN                                0.088834  \n",
       "sp|P08697|A2AP_HUMAN                                0.316359  \n",
       "sp|P02042|HBD_HUMAN                                 0.316359  \n",
       "sp|A0A075B6S2|KVD29_HUMAN;sp|A2NJV5|KV229_HUMAN...  0.486481  \n",
       "sp|P69891|HBG1_HUMAN                                0.486481  \n",
       "sp|P05156|CFAI_HUMAN                                0.486481  \n",
       "sp|P0DP02|HVC33_HUMAN                               0.487375  \n",
       "sp|Q9UBP9|GULP1_HUMAN                               0.605430  \n",
       "sp|P02750|A2GL_HUMAN                                0.635904  \n",
       "sp|Q96PD5|PGRP2_HUMAN                               0.635904  \n",
       "sp|P10643|CO7_HUMAN                                 0.635904  \n",
       "sp|P32119|PRDX2_HUMAN                               0.635904  "
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "proteomics_v5 = proteomics.loc[meta_v5.index]\n",
    "v5_correlations = proteomics_v5.apply(spearmanr, b=meta_v5['median_mmNorm']).transpose()\n",
    "v5_correlations.columns = ['rho', 'p_value']\n",
    "v5_correlations['p_adj'] = p_adjust(v5_correlations['p_value'])\n",
    "v5_correlations = v5_correlations.sort_values('p_value')\n",
    "v5_correlations.head(15)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8dae5adc-4ae0-44c0-ac51-f75f366532bf",
   "metadata": {},
   "source": [
    "No significant results after FDR correction."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "6ac17b11-6c18-4fb7-98d1-7af1a3048008",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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ZC7VCjnNmzd/7GXiPF1FRERENUG1Qs66desAAMeOHcORI0cwdepU1K9fH2lpaVixYgWvriIiIqIao1ohp2z18blz52LDhg3w9fUFADRt2hQtWrTAsGHDMH36dPNXSURERFRNJt3xOCsrCy4uLgZtUqkU+fn5ZimKiIiI6EmZFHI6duyId955B8nJyVCpVLh58ybefPNN9OjRw9z1EREREZnEpJDz0UcfITMzE3369EHbtm3xwgsvQKPR4MMPPzRzeURERESmMem2jt7e3oiJiUFqairu378PPz8//eXlRERERDWBSUdygIfzcg4cOIC9e/fC2dkZv/32mznrIiIiInoiJoWcixcv4tlnn8W+ffuwdetWZGdnY8aMGdi2bZu566uRMgpKce1+Pi6k5CIluwgqjcbWJREREdHfmBRyFi9ejDlz5mDTpk0Qi8UICgrCihUrsHr1anPXV6PodDpcvZePEd+cQN/PjqD/8j/Q7/Oj2BibjJwipa3LIyIiokeYFHKuXbuGgQMHAoD+DshPP/007t+/b77KaqCUnGIM//o4EtML9G0FpWp8sOsiTtzKsmFlRERE9HcmhRwPDw/cvHnToO3mzZvw8vIyS1E1VdytLOQWq8rt+2TfFWTkl1q5IiIiIqqISSFn5MiRmDhxIjZv3gy1Wo29e/dixowZGD58uLnrq1HOJGVX2HfjQSGUGq0VqyEiIqLKmHQJ+ZgxYyASifB///d/0Gq1WLZsGV566SW89tprZi6vZmnu71JhX6CbHGJh5YuXEhERkfWYdCQnJycHubm5aNeuHZ577jmEhobi2rVreO+998xdX43SvZk3ZA7lD9n0Xk3h4yKzckVERERUEZNCzsyZM7Fz505oTLx0OjMzE9HR0QgPD0dERAQWLlwItVpd7rYbN25Ev379EBoain79+iEmJsakfZpDgKsMMeM7w9NRom8TCQWY0L0xerfwsVldRET24EF+KeLvZCPmRBIOXbmPlOwiaLW6CrcvKFHhVkYhtp1OxuZTybj5oAD5FcybpLrJpNNV586dw2+//QY3NzeTdjpz5kz4+vri6NGjyMjIwOTJk7F27VqMHz/eYLtff/0V//nPf/Dtt9+iXbt2OHv2LCZMmAAvLy/069fPpH0/CbFIiNAgN/w8rRvS80tRrNTA300GLycpHKUmDSUREQFIzSnG+HWncCk1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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "_ =sns.scatterplot(x='sp|P60709|ACTB_HUMAN;sp|P63261|ACTG_HUMAN', y='median_mmNorm', hue='VisitCode',\n",
    "                   data=pd.concat([proteomics.loc[meta_matched.index], meta_matched], axis=1).query(\"VisitCode == 'V5'\"))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a9abab2c-3d81-4188-8879-dab44e6dbba2",
   "metadata": {},
   "source": [
    "This is our best result at a p-value of .06 and R value of -.51. Not super compelling."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d7431da8-1e57-48f5-992f-4b996fa51809",
   "metadata": {},
   "source": [
    "## Relative abunds\n",
    "\n",
    "Let's try different normalizations to see how that effects the results. I will start with relative abundances."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "f9bbf05a-8fba-43f7-a24e-64b3f59c8598",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>sp|P60709|ACTB_HUMAN;sp|P63261|ACTG_HUMAN</th>\n",
       "      <td>-0.497661</td>\n",
       "      <td>0.000505</td>\n",
       "      <td>0.126146</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P69905|HBA_HUMAN</th>\n",
       "      <td>-0.464185</td>\n",
       "      <td>0.001318</td>\n",
       "      <td>0.164807</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P68871|HBB_HUMAN</th>\n",
       "      <td>-0.445140</td>\n",
       "      <td>0.002184</td>\n",
       "      <td>0.181999</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P02042|HBD_HUMAN</th>\n",
       "      <td>-0.408237</td>\n",
       "      <td>0.005371</td>\n",
       "      <td>0.298029</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|O75636|FCN3_HUMAN</th>\n",
       "      <td>0.403690</td>\n",
       "      <td>0.005961</td>\n",
       "      <td>0.298029</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                rho   p_value     p_adj\n",
       "sp|P60709|ACTB_HUMAN;sp|P63261|ACTG_HUMAN -0.497661  0.000505  0.126146\n",
       "sp|P69905|HBA_HUMAN                       -0.464185  0.001318  0.164807\n",
       "sp|P68871|HBB_HUMAN                       -0.445140  0.002184  0.181999\n",
       "sp|P02042|HBD_HUMAN                       -0.408237  0.005371  0.298029\n",
       "sp|O75636|FCN3_HUMAN                       0.403690  0.005961  0.298029"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "proteomics_rel_v5 = proteomics_rel.loc[meta_v5.index]\n",
    "# metab_data_v5 = metab_data_v5[(metab_data_v5 > 0).sum(axis=0) > metab_data_v5.shape[0]*.2]\n",
    "v5_correlations_rel = proteomics_rel_v5.apply(spearmanr, b=meta_v5['median_mmNorm']).transpose()\n",
    "v5_correlations_rel.columns = ['rho', 'p_value']\n",
    "v5_correlations_rel['p_adj'] = p_adjust(v5_correlations_rel['p_value'])\n",
    "v5_correlations_rel = v5_correlations_rel.sort_values('p_value')\n",
    "v5_correlations_rel.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e5afa69b-dfdc-45ee-8645-b2397a3873cf",
   "metadata": {},
   "source": [
    "Even worse p-values."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "31126bfa-8d45-491c-a422-c6b5a88e2fee",
   "metadata": {},
   "source": [
    "## CLR"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "c5ef7681-7103-4cd1-8407-6e303ab4314e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>sp|P60709|ACTB_HUMAN;sp|P63261|ACTG_HUMAN</th>\n",
       "      <td>-0.494036</td>\n",
       "      <td>0.000563</td>\n",
       "      <td>0.140640</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P69905|HBA_HUMAN</th>\n",
       "      <td>-0.458979</td>\n",
       "      <td>0.001518</td>\n",
       "      <td>0.189731</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P68871|HBB_HUMAN</th>\n",
       "      <td>-0.435453</td>\n",
       "      <td>0.002793</td>\n",
       "      <td>0.232731</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P02042|HBD_HUMAN</th>\n",
       "      <td>-0.407908</td>\n",
       "      <td>0.005412</td>\n",
       "      <td>0.294914</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|O75636|FCN3_HUMAN</th>\n",
       "      <td>0.404152</td>\n",
       "      <td>0.005898</td>\n",
       "      <td>0.294914</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                rho   p_value     p_adj\n",
       "sp|P60709|ACTB_HUMAN;sp|P63261|ACTG_HUMAN -0.494036  0.000563  0.140640\n",
       "sp|P69905|HBA_HUMAN                       -0.458979  0.001518  0.189731\n",
       "sp|P68871|HBB_HUMAN                       -0.435453  0.002793  0.232731\n",
       "sp|P02042|HBD_HUMAN                       -0.407908  0.005412  0.294914\n",
       "sp|O75636|FCN3_HUMAN                       0.404152  0.005898  0.294914"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "proteomics_clr_v5 = proteomics_clr.loc[meta_v5.index]\n",
    "# metab_data_v5 = metab_data_v5[(metab_data_v5 > 0).sum(axis=0) > metab_data_v5.shape[0]*.2]\n",
    "v5_correlations_clr = proteomics_clr_v5.apply(spearmanr, b=meta_v5['median_mmNorm']).transpose()\n",
    "v5_correlations_clr.columns = ['rho', 'p_value']\n",
    "v5_correlations_clr['p_adj'] = p_adjust(v5_correlations_clr['p_value'])\n",
    "v5_correlations_clr = v5_correlations_clr.sort_values('p_value')\n",
    "v5_correlations_clr.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a4e43f9a-af28-47a4-8370-c5197e4e9da9",
   "metadata": {},
   "source": [
    "Even worse p-values than relative abundance normalization."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f808c979-6017-42c5-be05-1104541a74ef",
   "metadata": {},
   "source": [
    "## Do correlations with separated titers\n",
    "\n",
    "Now we will see if spliting titers gives better results."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "4fd8172f-dad6-428f-b106-3b58bb2dde90",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>CON__P00761</th>\n",
       "      <td>-0.430200</td>\n",
       "      <td>0.003182</td>\n",
       "      <td>0.399812</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P05156|CFAI_HUMAN</th>\n",
       "      <td>0.409966</td>\n",
       "      <td>0.005160</td>\n",
       "      <td>0.399812</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P60709|ACTB_HUMAN;sp|P63261|ACTG_HUMAN</th>\n",
       "      <td>-0.391972</td>\n",
       "      <td>0.007746</td>\n",
       "      <td>0.399812</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P69905|HBA_HUMAN</th>\n",
       "      <td>-0.387292</td>\n",
       "      <td>0.008579</td>\n",
       "      <td>0.399812</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|Q03591|FHR1_HUMAN</th>\n",
       "      <td>0.382151</td>\n",
       "      <td>0.009582</td>\n",
       "      <td>0.399812</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                rho   p_value     p_adj\n",
       "CON__P00761                               -0.430200  0.003182  0.399812\n",
       "sp|P05156|CFAI_HUMAN                       0.409966  0.005160  0.399812\n",
       "sp|P60709|ACTB_HUMAN;sp|P63261|ACTG_HUMAN -0.391972  0.007746  0.399812\n",
       "sp|P69905|HBA_HUMAN                       -0.387292  0.008579  0.399812\n",
       "sp|Q03591|FHR1_HUMAN                       0.382151  0.009582  0.399812"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v5_DTAPHib_correlations = proteomics_v5.apply(spearmanr, b=meta_v5['median_mmNorm_DTAPHib']).transpose()\n",
    "v5_DTAPHib_correlations.columns = ['rho', 'p_value']\n",
    "v5_DTAPHib_correlations['p_adj'] = p_adjust(v5_DTAPHib_correlations['p_value'])\n",
    "v5_DTAPHib_correlations = v5_DTAPHib_correlations.sort_values('p_value')\n",
    "v5_DTAPHib_correlations.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4aace24f-eba3-4d05-a81e-eaffb6603c9e",
   "metadata": {},
   "source": [
    "The least significant p-values so far."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "97872559-906a-4d25-8cec-8dca5bb6358e",
   "metadata": {},
   "outputs": [],
   "source": [
    "meta_PCV = meta_matched.loc[~pd.isna(meta_matched['median_mmNorm_PCV'])]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "a7b52287-28a7-452f-a9f6-af3a34b94da2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>sp|O75636|FCN3_HUMAN</th>\n",
       "      <td>0.522293</td>\n",
       "      <td>0.000388</td>\n",
       "      <td>0.097082</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P68871|HBB_HUMAN</th>\n",
       "      <td>-0.464170</td>\n",
       "      <td>0.001959</td>\n",
       "      <td>0.169388</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P69905|HBA_HUMAN</th>\n",
       "      <td>-0.462711</td>\n",
       "      <td>0.002033</td>\n",
       "      <td>0.169388</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P60709|ACTB_HUMAN;sp|P63261|ACTG_HUMAN</th>\n",
       "      <td>-0.423638</td>\n",
       "      <td>0.005180</td>\n",
       "      <td>0.230468</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P10643|CO7_HUMAN</th>\n",
       "      <td>0.423071</td>\n",
       "      <td>0.005247</td>\n",
       "      <td>0.230468</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                rho   p_value     p_adj\n",
       "sp|O75636|FCN3_HUMAN                       0.522293  0.000388  0.097082\n",
       "sp|P68871|HBB_HUMAN                       -0.464170  0.001959  0.169388\n",
       "sp|P69905|HBA_HUMAN                       -0.462711  0.002033  0.169388\n",
       "sp|P60709|ACTB_HUMAN;sp|P63261|ACTG_HUMAN -0.423638  0.005180  0.230468\n",
       "sp|P10643|CO7_HUMAN                        0.423071  0.005247  0.230468"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "meta_PCV_v5 = meta_PCV.query(\"VisitCode == 'V5'\")\n",
    "proteomics_PCV_v5 = proteomics.loc[meta_PCV_v5.index]\n",
    "v5_PCV_correlations = proteomics_PCV_v5.apply(spearmanr, b=meta_PCV_v5['median_mmNorm_PCV']).transpose()\n",
    "v5_PCV_correlations.columns = ['rho', 'p_value']\n",
    "v5_PCV_correlations['p_adj'] = p_adjust(v5_PCV_correlations['p_value'])\n",
    "v5_PCV_correlations = v5_PCV_correlations.sort_values('p_value')\n",
    "v5_PCV_correlations.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "412646b4-07b0-4d6d-9fc0-ab95e035db92",
   "metadata": {},
   "source": [
    "A adjusted p-value < .1 result but still all insignificant."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "762f3949-ec6e-4495-9a43-6ff000191f75",
   "metadata": {},
   "source": [
    "### Relative abundance\n",
    "\n",
    "We will check the other adjustments as well."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "ab505f06-eaf8-4403-bac1-0ba947107009",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>sp|Q03591|FHR1_HUMAN</th>\n",
       "      <td>0.392631</td>\n",
       "      <td>0.007635</td>\n",
       "      <td>0.565246</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P05156|CFAI_HUMAN</th>\n",
       "      <td>0.390720</td>\n",
       "      <td>0.007962</td>\n",
       "      <td>0.565246</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P60709|ACTB_HUMAN;sp|P63261|ACTG_HUMAN</th>\n",
       "      <td>-0.383404</td>\n",
       "      <td>0.009329</td>\n",
       "      <td>0.565246</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P69905|HBA_HUMAN</th>\n",
       "      <td>-0.377669</td>\n",
       "      <td>0.010537</td>\n",
       "      <td>0.565246</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P02042|HBD_HUMAN</th>\n",
       "      <td>-0.365608</td>\n",
       "      <td>0.013522</td>\n",
       "      <td>0.565246</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                rho   p_value     p_adj\n",
       "sp|Q03591|FHR1_HUMAN                       0.392631  0.007635  0.565246\n",
       "sp|P05156|CFAI_HUMAN                       0.390720  0.007962  0.565246\n",
       "sp|P60709|ACTB_HUMAN;sp|P63261|ACTG_HUMAN -0.383404  0.009329  0.565246\n",
       "sp|P69905|HBA_HUMAN                       -0.377669  0.010537  0.565246\n",
       "sp|P02042|HBD_HUMAN                       -0.365608  0.013522  0.565246"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v5_DTAPHib_correlations_rel = proteomics_rel_v5.apply(spearmanr, b=meta_v5['median_mmNorm_DTAPHib']).transpose()\n",
    "v5_DTAPHib_correlations_rel.columns = ['rho', 'p_value']\n",
    "v5_DTAPHib_correlations_rel['p_adj'] = p_adjust(v5_DTAPHib_correlations_rel['p_value'])\n",
    "v5_DTAPHib_correlations_rel = v5_DTAPHib_correlations_rel.sort_values('p_value')\n",
    "v5_DTAPHib_correlations_rel.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "be7aae6e-9085-4f77-a7af-14f5476b6c99",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>sp|O75636|FCN3_HUMAN</th>\n",
       "      <td>0.464332</td>\n",
       "      <td>0.001951</td>\n",
       "      <td>0.209628</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P69905|HBA_HUMAN</th>\n",
       "      <td>-0.463440</td>\n",
       "      <td>0.001995</td>\n",
       "      <td>0.209628</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P68871|HBB_HUMAN</th>\n",
       "      <td>-0.454199</td>\n",
       "      <td>0.002516</td>\n",
       "      <td>0.209628</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P10643|CO7_HUMAN</th>\n",
       "      <td>0.405399</td>\n",
       "      <td>0.007735</td>\n",
       "      <td>0.477508</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P60709|ACTB_HUMAN;sp|P63261|ACTG_HUMAN</th>\n",
       "      <td>-0.388457</td>\n",
       "      <td>0.011015</td>\n",
       "      <td>0.477508</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                rho   p_value     p_adj\n",
       "sp|O75636|FCN3_HUMAN                       0.464332  0.001951  0.209628\n",
       "sp|P69905|HBA_HUMAN                       -0.463440  0.001995  0.209628\n",
       "sp|P68871|HBB_HUMAN                       -0.454199  0.002516  0.209628\n",
       "sp|P10643|CO7_HUMAN                        0.405399  0.007735  0.477508\n",
       "sp|P60709|ACTB_HUMAN;sp|P63261|ACTG_HUMAN -0.388457  0.011015  0.477508"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "proteomics_rel_PCV_v5 = proteomics_rel.loc[meta_PCV_v5.index]\n",
    "v5_PCV_correlations_rel = proteomics_rel_PCV_v5.apply(spearmanr, b=meta_PCV_v5['median_mmNorm_PCV']).transpose()\n",
    "v5_PCV_correlations_rel.columns = ['rho', 'p_value']\n",
    "v5_PCV_correlations_rel['p_adj'] = p_adjust(v5_PCV_correlations_rel['p_value'])\n",
    "v5_PCV_correlations_rel = v5_PCV_correlations_rel.sort_values('p_value')\n",
    "v5_PCV_correlations_rel.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "07e450f3-f2ad-4437-824c-2429b1ffcabc",
   "metadata": {},
   "source": [
    "Nothing is significant for either titer."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2e9157c2-12a8-4161-9064-257f48de3ff8",
   "metadata": {},
   "source": [
    "### CLR"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "bdcb8118-6e3f-4210-900d-2f4d72358a6f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>sp|Q03591|FHR1_HUMAN</th>\n",
       "      <td>0.389204</td>\n",
       "      <td>0.008230</td>\n",
       "      <td>0.60381</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P05156|CFAI_HUMAN</th>\n",
       "      <td>0.384195</td>\n",
       "      <td>0.009172</td>\n",
       "      <td>0.60381</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P60709|ACTB_HUMAN;sp|P63261|ACTG_HUMAN</th>\n",
       "      <td>-0.380174</td>\n",
       "      <td>0.009994</td>\n",
       "      <td>0.60381</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P69905|HBA_HUMAN</th>\n",
       "      <td>-0.376417</td>\n",
       "      <td>0.010818</td>\n",
       "      <td>0.60381</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P02743|SAMP_HUMAN</th>\n",
       "      <td>0.365937</td>\n",
       "      <td>0.013432</td>\n",
       "      <td>0.60381</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                rho   p_value    p_adj\n",
       "sp|Q03591|FHR1_HUMAN                       0.389204  0.008230  0.60381\n",
       "sp|P05156|CFAI_HUMAN                       0.384195  0.009172  0.60381\n",
       "sp|P60709|ACTB_HUMAN;sp|P63261|ACTG_HUMAN -0.380174  0.009994  0.60381\n",
       "sp|P69905|HBA_HUMAN                       -0.376417  0.010818  0.60381\n",
       "sp|P02743|SAMP_HUMAN                       0.365937  0.013432  0.60381"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v5_DTAPHib_correlations_clr = proteomics_clr_v5.apply(spearmanr, b=meta_v5['median_mmNorm_DTAPHib']).transpose()\n",
    "v5_DTAPHib_correlations_clr.columns = ['rho', 'p_value']\n",
    "v5_DTAPHib_correlations_clr['p_adj'] = p_adjust(v5_DTAPHib_correlations_clr['p_value'])\n",
    "v5_DTAPHib_correlations_clr = v5_DTAPHib_correlations_clr.sort_values('p_value')\n",
    "v5_DTAPHib_correlations_clr.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "11ddf273-ed1b-4085-8c19-6287fecedf7f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>sp|O75636|FCN3_HUMAN</th>\n",
       "      <td>0.465872</td>\n",
       "      <td>0.001875</td>\n",
       "      <td>0.247371</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P69905|HBA_HUMAN</th>\n",
       "      <td>-0.463765</td>\n",
       "      <td>0.001979</td>\n",
       "      <td>0.247371</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P68871|HBB_HUMAN</th>\n",
       "      <td>-0.445201</td>\n",
       "      <td>0.003133</td>\n",
       "      <td>0.261087</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P10643|CO7_HUMAN</th>\n",
       "      <td>0.395833</td>\n",
       "      <td>0.009464</td>\n",
       "      <td>0.481363</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sp|P60709|ACTB_HUMAN;sp|P63261|ACTG_HUMAN</th>\n",
       "      <td>-0.386592</td>\n",
       "      <td>0.011440</td>\n",
       "      <td>0.481363</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                rho   p_value     p_adj\n",
       "sp|O75636|FCN3_HUMAN                       0.465872  0.001875  0.247371\n",
       "sp|P69905|HBA_HUMAN                       -0.463765  0.001979  0.247371\n",
       "sp|P68871|HBB_HUMAN                       -0.445201  0.003133  0.261087\n",
       "sp|P10643|CO7_HUMAN                        0.395833  0.009464  0.481363\n",
       "sp|P60709|ACTB_HUMAN;sp|P63261|ACTG_HUMAN -0.386592  0.011440  0.481363"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "proteomics_clr_PCV_v5 = proteomics_clr.loc[meta_PCV_v5.index]\n",
    "v5_PCV_correlations_clr = proteomics_clr_PCV_v5.apply(spearmanr, b=meta_PCV_v5['median_mmNorm_PCV']).transpose()\n",
    "v5_PCV_correlations_clr.columns = ['rho', 'p_value']\n",
    "v5_PCV_correlations_clr['p_adj'] = p_adjust(v5_PCV_correlations_clr['p_value'])\n",
    "v5_PCV_correlations_clr = v5_PCV_correlations_clr.sort_values('p_value')\n",
    "v5_PCV_correlations_clr.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bcce6c1c-3a41-4c1c-a884-f5b320a33454",
   "metadata": {},
   "source": [
    " Again nothing with CLR."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "800b284f-5d99-4587-afab-38ab0e3d663c",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
